По умолчанию средствами css такого можно добиться только с помощью
writing-mode: vertical-lr и
transform: rotate(-90deg)
Вариант этот так себе, поэтому лучше JS - на каждый перенос строки (он же не автоматический?) помещать весь предыдущий текст в отдельный элемент, и добавлять в блок выше, ну а там уже и делать особо ничего не надо. display:flex; flex-direction: column или просто создавать блочные элементы.
Если перенос всё же автоматический, то только вариант на css