Distribuirlo en ese orden puede ser algo más complejo. Ten en cuenta que las tablas en HTML se construyen por filas, no por columnas, por lo que deberías llenar filas....
Hace tiempo posteé una manera de hacer esto, no sé si habrá alguna manera más simple, pero puede servir.
Código PHP:
//AQUÍ TIENES QUE PASAR LOS RESULTADOS DE LA CONSULTA AL ARRAY "$array_resultados"
$Num_columnas = 4; //Número de Columnas
$i = 0;
$Columna_actual = 1;
$Fila_actual = 1;
$Num_resultados = count($array_resultados);
$Num_filas = $Num_resultados / $Num_columnas;
if (!is_int($Num_filas))
$Num_filas++;
$Num_filas = number_format($Num_filas, 0);
echo $Num_filas;
echo '<table cellSpacing="0" cellPadding="0" width="100%" border="1">';
echo '<tr>';
while($i<$Num_resultados) {
if ($Columna_actual > $Num_columnas) {
echo '</tr>';
echo '<tr>';
$Columna_actual = 1;
$Fila_actual++;
}
$Indice_a_mostrar = (($Columna_actual - 1) * $Num_filas + $Fila_actual)-1;
if (($Indice_a_mostrar + 1) <= $Num_resultados) {
echo '<td'>
// AQUÍ ACCEDERÍAS AL ARRAY, USANDO COMO INDICE $Indice_a_mostrar
echo '</td>';
$i++;
}
$Columna_actual++;
}
echo '</tr></table>';