Есть способ при котором копируешь весь текст в отдельный span/div с такой же шириной, затем полученную высоту делишь на высоту строки - получаешь количество строк.
30000 — это 30 секунд, логично же что в одну секунду будет порядка 8-9 пикселей в секунду. а вообще проще, если скорость 1 пиксель одна секунда, то и сделать интервал секундный в котором будет увеличение прогресса, проверка на остановку анимации и тд: