Ну, я попытался реализовать что-нибудь близкое к задаче,
вот что получилось.
Вкратце: кастомный метод
getBoundingRectElement возвращает див, форма и положение которого взяты у исходного элемента с помощью нативного метода
getBoundingClientRect. Первым аргументом этот метод (зачем-то) принимает класс, который вешается на элемент, вторым - флажок, в зависимости от которого элементы перерисовываются по скроллу и ресайзу или не перерисовываются.
Способ обособления строк в отдельные строчные элементы, я думаю, значения не имеет. В моём примере эти элементы выделены заранее. А вообще можно это делать как угодно: делать replace, как советовал pashted, или например использовать selection.
В примере слова из верхнего блока не перерисовываются, а из нижнего - перерисовываются.