Невозможно совместно использовать кадровые буферы между различными контекстами. См. Первый абзац Приложения D, спецификация OpenGL 3.3. Тем не менее, вы можете делиться текстурами и буфером рендеринга, которые должны давать вам нужные вам данные.
Что касается потоков: это должно быть возможно, но, как правило, рекомендуется не выполнять команды GL из нескольких потоков (поскольку синхронизировать их очень сложно). Обычно вы копируете содержимое в объект pixel-buffer и отображаете его из потока GL, а затем используете отображенный указатель из другого потока.