Здравствуйте!

Попробую по порядку ответить на вопросы

По поводу примера - не совсем понятно, к чему там создание окна, ведь оно нигде не используется - просто из старого примера "перекочевало", наверное?

Многопоточность через WinApi.CreateThread использовать нельзя ни в коем случае. ББ - среда со сложным рантаймом, и такое использование рано или поздно приведет к краху, например, в момент сборки мусора (когда структура памяти временно нецелостна, но поток-то ничего об этом не знает...).
В обычной версии ББ многопоточности нет в принципе. В Active BlackBox нужно использовать либо активные процедуры, либо низкоуровневую оболочку для CreateThread - Kernel.cCreateTask, которая корректно зарегистрирует поток в ядре.
И то - прежде чем вызывать из параллельного потока Views.Update, нужно будет выполнить блокировку Synch.BeginOberonSafe (как в Delphi VCL используется Synchronize).

По поводу обновления - Views.Update не производит перерисовки экрана, а всего лишь ставит отображение в очередь отложенной перерисовки. Перерисовка выполняется почти сразу, но все равно отложенно. Ее выполняет главный поток среды. Естественно, что от введения многопоточности поведение обновления экрана не изменилось.
Почему меню и перетаскивание замораживают обновление - отдельный вопрос. Нужно смотреть, как это реализовано в HostMenus и HostWindows.