Grazie alla pagina che mi hai suggerito ho risolto così
codice:
$records_per_row = 3;

$i = 0;

while ($row=mysql_fetch_array($query)) {
 // Start a new row    
    if ($i % $records_per_row == 0) {
        print("<div style=\"clear:both;\">\n");
    }
 
    // Print current record 
    print("<div style=\"float:left;\">".$row['nome']."</div>\n");
 
    // End the row    
    if (($i + 1) % $records_per_row == 0) {
        print("</div>\n");
    }
 
    $i++;
}
Ho sostituito il ciclo foreach con un ciclo di while perchè col primo metodo non riuscivo a stampare il contenuto dell'array. Sicuramente non sarà il metodo migliore ma sembra che funzioni. Ti ringrazio ancora per il suggerimento.