As far as I know, there can only be one OpenGL context per thread if there is any at all.
You would have to call Display.create() in the new thread to get another OpenGL context, but that obviously won't work as it has to be the same context for the screenshot to work.
I have no idea if you can achieve this. I don't believe it's even possible.
What you could do to reduce the lag is start a new Thread once you've read the data from the screen. Then you can convert the data in the buffer to a BufferedImage and write that in the separate Thread.
This way, the only lag caused will be from reading the screen to a buffer.
EDIT: GL11 is deprecated?? Since when? Any why? And what should I be using?
By the way, is there a difference between the BACK buffer and the FRONT buffer when taking screenshots?