Можете попробовать Микрософтовскую ATL с её CEdit'ом или как он там называется, можно взять GtkTextView из GTK, можно извратится с управляемым C++ и вызвать дотнетовские классы
рисование прямоугольника
создание шрифта
вывод текста посимвольно
получение размера текста в пикселях
установка clip\scissor rectangle
текст хранится в wchar_t*
рисовать надо только видимые строки (соответственно каждый раз при изменении размера окна вычисляем количество строк).
Рисуем с определённого индекса, столько-то строк.
При прокрутке текста изменяем этот индекс.