Nie wiem czy dobrze zrozumiałem ale chodzi ci o taki kod

Zmienna $records zawiera wszystkie rekordy pobrane z tabeli.
for( $i = 0; $i < count($records); ++$i ) {
if( $i > 0 && $i % 2 == 0 ) // jeżeli ma być więcej elementów w jednym wierszu zmień 2 na inną wartość
}
Rozwiązaniem lepszym jest to rozwiązać na divach.
echo '<div class="container">'; for( $i = 0; $i < count($records); ++$i ) echo sprintf( '<div class="item">%s</div>', $records[$i] );
div.item powinien mieć ustawione float: left i określoną szerokość (oraz wysokość co by nie było żadnych krzywych problemów) a div.container overflow: hidden. Ilosć elementów określasz poprzez styl - czyli ile razy item zmieści się w container.