Мой опыт показывает, что есть две отдельные задержки. Один объединяет все эти строки вместе. Другой случай, когда браузер пытается отобразить строку. Как правило, именно IE имеет наибольшую проблему с зависаниями пользовательского интерфейса, отчасти потому, что он намного медленнее запускает JavaScript. Это должно стать лучше в IE8.
В вашем случае я бы предложил разбить операцию на шаги. Скажем, для таблицы из 100 строк вы сначала создаете правильную таблицу из 10 строк. Затем вы выводите это на экран и используете setTimeout, чтобы вернуть управление браузеру, чтобы пользовательский интерфейс прекратил блокировку. Когда setTimeout возвращается, вы делаете следующие 10 строк и т. Д.
Создание таблицы с использованием DOM, безусловно, "чище", как говорили другие. Тем не менее, есть высокая цена, чтобы заплатить с точки зрения производительности. См. Отличную статью quirksmode на эту тему, в которой есть некоторые тесты, которые вы можете запустить самостоятельно.
Короче говоря, innerHTML намного, намного быстрее, чем DOM, даже на современных движках JS.