TextBox は GlyphRun を使って描画しているんじゃないかと調べていましたがやっとその関係が見えてきました。
画像のクラス図がそうです。
これらのクラスはほとんどが internal class なので Microsoft のソース公開がなければうかがい知ることのなかった世界です。
TextBox はそのレンダリングを TextBoxView が請け負っています。
TextBoxView は TextFormatter を使っています。
TextFormatter は WPF のテキスト エンジンであり、テキストの書式設定およびテキスト行の改行のサービスを提供します。
TextFormatter ではテキスト フォーマッタ クライアントとテキスト レイアウト クライアントの対話を通して TextLine が作成されます、この時に利用されるのが TextSource です。
TextSource は TextRun を取得します、ここに TextRun のいろいろな表示属性を決める TextRunProperties もあります。
http://msdn.microsoft.com/ja-jp/library/system.windows.media.textformatting.textformatter.aspx
FullTextLine という TextLine が使われていますが、FormattedTextSymbols が使われていて GlyphRun を生成しています。
http://msdn.microsoft.com/ja-jp/library/system.windows.media.glyphrun.aspx
TextBox で GlyphIndices を操作して縦書きのグリフを作成するまでにはものすごく長い道のりであることは分かりました。
一方でその構造がわかったので正しい抜け道を探すことも可能なんじゃないかとも思っています。