Сделать, конечно, можно (есть ли смысл заморачиваться - вопрос отдельный). Например, можно складывать вызовы в стек и звать "по готовности":
<div id="toLog"></div>
<script type="text/javascript">
var Constructor = function(){
var stack = [];
this.add = function(str){
stack.push(str);
if(stack.length === 1){
document.getElementById('toLog').innerHTML += stack[0];
setTimeout(function(){
stack.shift();
if(stack.length === 0) return;
document.getElementById('toLog').innerHTML += stack[0];
setTimeout(arguments.callee, 500);
}, 500);
};
return this;
};
};
var inst = new Constructor();
inst.add('Tra').add(' - la').add(' - la!!!');
</script>