Lo que yo hago es esos casos es:
1. Contar cuantos registros son el resultado de la busqueda
2. dividir ese total por la cantidad de columnas, eso me dara la cantidad de filas
3. hago un for por la cantidad de filas
4. dentro de ese for hago un while y en el query pongo el limit
algo mas grafico
Código PHP:
# Supongamos que el total de registros son 8
$registros = 8;
$filas = round(8/3); # me va a dar como resultado 3
$desde_fila = 0;
for ($i=1; $row < mysql_fetch_row ($result); $i++) {
echo "<TR>";
$query = mysql_query ( "... LIMIT $desde_fila, 3;" );
while ( $data = mysql_fetch_array ( $query ) ){
echo "<TD>".$data['columna']."</td>";
}
echo "</TR>";
$desde_fila = $desde_fila + 3;
}
En un principio y para darte una idea, creo que sirve,hay muchas cosas sobre el mismo que se puede mejorar.
Suerte, avisa como te fue.