чтобы с OpenGL контекстом можно было работать из другого потока придётся плясать вокруг нескольких контекстов (хз поддерживает ли такое glfw) и вызовами wglShareLists (и её аналогами на других платформах). Так или иначе такой подход не рекомендуется вендорами, да и профита от этого не будет.
Видимо подход совсем в корне не верный у меня. Потому что еть еще одна проблема - возникает мерцание меша на экране, при попытке запроса обновить буффер из потока пользователя. То ли не каждый цикл это обновление происходит, то ли еще что-то, приходится принудительно его оставлять сразу после glDrawElements