Вы можете узнать, когда VerticalOffset изменяется, добавив обработчик события ScrollViewer.ScrollChanged в свой TextBox. Примерно так:
<TextBox AcceptsReturn="True" ScrollViewer.ScrollChanged="TextBox_ScrollChanged" />
TextBox внутренне использует ScrollViewer, поэтому его событие ScrollChanged будет всплывать до TextBox (где вы можете его обработать). Аргументы события включают информацию о том, что изменилось, например, VerticalChange (количество, которое элемент управления прокрутил вертикально).
private void TextBox_ScrollChanged(object sender, ScrollChangedEventArgs e) {
System.Diagnostics.Debug.WriteLine(string.Format("************ {0}", e.VerticalChange));
}