Tienes toda la razón, sin embargo existe una manera muy facil de arreglarlo. Simplemente miro el modulo de el numero total de registros con el numero de columnas, si me da mayor que cero ese valor lo lleno con celdas de tabla vacio. Aquí esta la solución completa. No se si es complicarse mas o no pero me funciona muy bien. Igual yo le coloque estilos css para dejar el ancho de la celda fijo y sirve para todos los casos en general cuando no se sabe el número total de registros que van a salir (de hecho yo lo tengo diseñado asi para un paginador que no se cuantos registros tendra).
Creo que con esto ya quedo al 100%. Comentarios y dudas quedo pendiente.
Código PHP:
$tabla='<table border="1" cellspacing="0" cellpadding="0">';
$ncolumnas=6;
$residuo=($totalRegistros%$ncolumnas);
for($i=0;$i<=$totalRegistros;$i++){
if ($i%6==0){
$tabla.='<tr><td><a>'.$datoaMostrar.'</a></td>';
}
else{
$tabla.='<td><a>'.$datoaMostrar.'<a></td>';
}
}
if ($ncolumnas-$residuo)>0{
for ($j=0;$j<=$ncolumnas-$residuo;$j++){
$tabla.='<td> </td>';
}
}
$tabla.='</tr></table>';
echo $tabla;