non ti prende gli stili? lo style non e' un attributo, non lo setti con setAttribute,
ma puoi applicarlo brutalmente seguendo la sintassi
riferimentoAdElemento.style.nomeProprietaCamelCase ='valore';
camelCase vuol dire che dove hai un trattino esso cade e la prima lettera successiva diventa maiuscola
background-color diventa backgroundColor
font-size diventa fontSize
...

non puoi riciclare elementi creati in precedenza, non puoi ri-appendere elementi gia' appesi

chiarisci(ti) cosa stai facendo qui, perche' non ha troppo senso
codice:
var row = document.createElement("TR");
var col = document.createElement("TD");

	if(giri == 0){
		row.appendChild(col);
		col.appendChild(odiv);
		document.getElementById('tbl_griglie').appendChild(row);
		giri++;
	}
	if(giri <= 2){
		col.appendChild(odiv);
		//row.appendChild(col);
		document.getElementById('tbl_griglie').appendChild(col);
		giri++;	
		}
	else{
		row.appendChild(col);
		col.appendChild(odiv);
		document.getElementById('tbl_griglie').appendChild(row);
		giri = 0;
	}
'tbl_griglie' se non vuoi problemi di compatibilita' dev' essere un <tbody>, non un <table>
se la tabella esiste gia' nel markup specifica un tbody ed appendi ad esso,
se non esiste crea un tbody, appendilo a table, appendi i tr al tbody

piu' probabilmente altre cose che non ho notato

ciao