Так, как я это сделал, у меня есть RichTextBox внутри ScrollViewer, например,
<ScrollViewer Name="sv">
<RichTextBox>
<FlowDocument>
<Paragraph />
</FlowDocument>
</RichTextBox>
</ScrollView>
Затем из выделенного кода вы можете прочитать значение sv.ExtentHeight, взять его процент и затем вызвать sv.ScrollToVerticalOffset (), чтобы переместить полосу прокрутки в эту позицию.