Código PHP:
<?
$array = array('a','b','d','e','f','g','h','i','j','k','l');
$total = count($array)/3;
echo "<table width='500' border='1'>\n";
$h = 0;
for($columnas=0; $columnas < $total; $columnas++) {
echo "<tr>\n";
for($filas=1; $filas<=3; $filas++) {
echo "<td> ".$array[$h]." </td>\n";
$h=$h+1;
}
echo "</tr>\n";
}
echo '</table>';
?>
Creo que asi te funcionara hice u cambio en el primer if lo pase a menor estricto y luego , en la variable $total , divido por 3 , ya que son 3 columas por fila.
Cualquier cosa avisame.