Я бы делал так.
for (var i = 0; i <= 20; i++) {
row = document.createElement('tr')
table.appendChild(row);
for (var j = 0; j <= 20; j++) {
cell = document.createElement('td');
row.appendChild(cell);
cell.innerHTML = "<input id='td" + i + ' ' + j + "' type='text' onfocus='doEdit(this.id);' onblur='doUpdate(this.value, this.id);' />"
}
}
Ошибся, теперь исправил