Да, но если один поток изменил поле, а поле в памяти не изменилось, а только в кеше процессора, то другой поток пришёл и что он прочитает? Из памяти старые данные?
Я думал что там стандартно такое предусмотрено с помощью какого нибудь свойства. В итоге сделал через системные вызовы из user32.dll: поставил обработчик событий скролла и по hWnd сообщения и контролов нужное поведение описал