Lo que yo haría sería meter una variable auxiliar, por ejemplo aux, de tal manera que le voy incrementando el valo 1 a 1. Cuando llego a 10 (por ejemplo el alto de la columna), empiezo con otro td, de tal forma que tendría las horas de esta manera:
8:00 9:45
8:15 10:00
8:30 ....
8:45
9:00
9:15
9:30
Es simplemente un if dentro del bucle del recordset, si la variable aux llega a 10, entonces cierro un td y abro otro y pongo aux a 1, cuando vuelva a llegar a diez lo mismo, la pongo a 0, cierro un td y abro otro. Espero te sirva.