this.start = function(){
Weißt du warum du hier this benutzt?
this.head = function(table){
var head_exist = false;
for(var i=0; i<table.childNodes.length; i++){
if(table.childNodes[i].nodeName == "thead") head_exist = true;
Das ist der umständlichste Weg, den es gibt um ein Element zu finden. und in dem speziellen Fall ganz besonders. Es gibt tHead http://de.selfhtml.org/javascript/objekte/htmlelemente.htm#thead
var thead = document.createElement('thead'); table.insertBefore(thead, table.childNodes[1]);
Was ist denn deiner Meinung nach childNodes[1]?
Sicher nicht tBody. table.tBody gibt es zwar, aber warum fügst du den header nicht einfach als child in die Tabelle?
table.appendChild(thead)
Struppi.