самое простое - разбить задачу на две функции. первая режет строку на части (одна часть - строка, до перевода строки) и потом сразу вызывает вторую, вторая - выводит текст на страницу.
дальше уже испоьлзовать в любой момент первую функцию - хоть по клику, хоть по таймауту.
<body><h1>СТИХЪ</h1></body>
<script>
var str = "РАЗ <br> ДВА <br> ТРИ";
// чтобы не использовать трюки вроде замыкания,
// я просто оставлю переменные в ГО.
var splitted, i, delimiter = "<br>";
function split(string) {
// первый запуск
if (splitted === undefined) {
splitted = string.split(delimiter);
i = 0;
}
if (i in splitted) {
render(splitted[i]);
i += 1;
// даём понять, что всё хорошо
return true;
} else {
// всё, конец.
return false;
}
}
// вывод текста на страницу. тут анимации всякие.
function render(string) {
document.body.innerHTML += "<p>" + string + "</p>";
}
var id = setInterval(function(){
if (!split(str)) {
clearInterval(id);
}
}, 1000);
</script>