Сам DOM не очень тормозной, тормоза вызваны различными внутренними пересчетами браузера при изменении страницы. Т.е. все просто: пока твой элемент не присоединен к документу, ты можешь делать с ним все, что угодно и это не вызовет особых тормозов. Так что лучше сначала добавить контент, а потом присоединять к документу. Как-то так:
function create(name, context) {
var element = document.ceateElement(name);
element.innerHTML = content;
return element;
}
var p = create('p', 'foo');
var div = create('div', 'bar');
document.body.appendChild(p);
document.body.appendChild(div);
Плюс, если тебе надо создать и приаттачить несколько элементов, можно воспользоваться DocumentFragment:
http://learn.javascript.ru/multi-insert