Si lo querés hacer con tablas, podrías colocar un contador de registro que se autoincremente dentro del bucle, y luego con un if(($contador%3)==0)genero un nuevo renglón; else sigo en el mismo renglón;
Pero la verdad es que lo más sencillo es generar una capa contenedora con el ancho de las tres cajas y luego generar las cajas interiores con un estilo float:left, y que éstas se acomoden solas.
Quizá un ejemplo más claro de esto último lo veas aquí:
http://www.desarrolloweb.com/articulos/2323.php