>>76
ListBox.UpdateLayout を使って強制的にレイアウトを再計算させるか、
Dispatcher.BeginInvoke(hoge, DispatcherPriority.Loaded) を使ってレイアウト計算後にスクロール処理を走らせてみては?
もしくは、ListBox.ItemContainerGenerator の StatusChanged イベントを待つとか。

最初の ScrollChanged が発生した段階では、後に受信したデータの ListBoxItem 要素が生成されてないのかも。