Guarda è un problema che mi si presenta sempre, se la cella non contiene niente (ovvero <td></td>) i bordi vengono male. Io risolvo sempre come ti dicevo.
Basta controllare un attimo lo script, se il valore è null o "" allora ci stampi lo spazio