The rendering in the thread is not an issue, provided you protect the rendering code with a critical section.
But you need to call OpenGLControl1.SwapBuffers; in the context of the main thread. Not IN the thread. Or Syncronize(SwapBuffers), that's also possible.
The latter is more or less the same, but easier with your code and does not need a critical section, although I would recommend it anyway.