Mit der Meldung
EM_POSFROMCHAR bekommst du für eine Zeichenposition (wie z.B. SelStart) die Pixelkoordinate (bezogen auf den aktuell sichtbaren Ausschnitt).
EM_CHARFROMPOS ist quasi die Umkehrfunktion - damit könntest du dir das erste sichtbare Zeichen ermitteln.
Falls du es brauchst: mit
EM_GETSCROLLPOS kriegst du die "virtuelle" Pixelkoordinate der linken oberen Ecke - wenn der User also 100 Pixel nach unten und 20 nach rechts gescrollt hat, dann eben 20 und 100.
// Nachtrag
Das JvRichEdit hat dafür übrigens schon eine Funktion: GetCharPos.