Ну так все правильно думаешь. Варианты можно всякие придумать, например такой: нужно два массива, один со строками (или лучше даже с объектами, там можно будет для каждого сообщения много инфы тащить, типа имя отправителя, текст, аватарку и т.д.), а второй - пустой.
Далее сделать рекурсивную функцию, которая перекладывает первый элемент первого массива во второй, пока там что-то есть.
По красоте можно ещё задержку не константную сделать, а в зависимости от длины сообщения (узнать эмпирическим методом можно или прогуглить среднюю скорость натыкивания текста), но не меньше, чем x (чтобы короткие не устроили фейерверк).