Předpokládejme že textarea je v objektu el.
Pomocí metod el.selectionStart a el.selectionEnd získáš pozici kurzoru v indexech znaků.
Pomocí el.scrollTop a el.scrollLeft získáš v pixelech nascrollování obsahu v rámci textarei.
Pomocí window.getComputedStyle(el).fontSize získáš velikost písma obsahu. (Možná ještě padding, a další věci?)
Následně si můžeš spočítat, že pozice 300 je na 25 řádku (počet \n). Krát velikost písma. Mínus el.scrollLeft.
Asi by to šlo. Jak moc je to patlárna a zda tam není nějaký podraz, co mi unikl, netuším.