Немезидом писал как я понял через js
Я предлагал использовать готовые библиотеки для решения этой проблем. Но, в целом, да, большинство из них решают эту проблему создавая виртуальный скролл, работающий на JavaScript.
Вообще, когда возникает какая-то проблема, я в первую очередь ставлю вопрос: как её решают другие в нашей индустрии? И разработчики того же Slack или веб-версии Skype предпочитают именно такой подход.