GL is not thread safe, so you cannot call GL functions from two different threads. You will have to protect every part of gl with mutexes, which leads to the increase in performance you expect, plus the overhead of locking the mutex and possibly the necessary context switching.
source share