Я использовал Scintilla.NET для такого рода вещей: http://scintillanet.codeplex.com/
Он предназначен для использования в текстовых редакторах, но его можно сделать только для чтения, и он довольно быстрый даже для большого количества текста. Вы получаете эффективный индивидуальный контроль над цветами и базовое оформление текста, но не в той же степени, что и элемент управления Rich Edit.
Отрицательными моментами является то, что он основан на элементе управления, разработанном для использования из кода C ++, поэтому нет особого смысла в документации по .NET. А код .NET написан на C #, так что, вероятно, лучше, если вы с ним немного знакомы.