Hallo,
Also ist deine später erscheinende Tabelle valide.
Den Validator stört es genau gar nicht, woher der Code kommt.
Der Validator parst das Quelldokument, sieht aber nicht den via JavaScript manipulierten DOM-Baum. Wenn die Tabelleninhalte komplett vom Script erzeugt werden, dann liegt es nahe, auch die Elemente table (und wichtig!) tbody mittels createElement() / appendChild() anzulegen.
MfG, Thomas