The following two bullet points from MSDN seems to suggest that not only is this thread unsafe, but there is a reduction in the device's capabilities while an HDC is outstanding.
You must release the device(they are referring to the HDC) and call the IDXGISurface1::ReleaseDC method before you issue any new Direct3D commands.
This method fails if an outstanding DC has already been created by this method.
Getting an HDC from the DXGISurface inherently involves the surface's parent D3D11 DC. Multi-threaded access of a D3D11 DC is also unsupported. From this MSDN page: If multiple threads must access a single ID3D11DeviceContext, they must use some synchronization mechanism, such as critical sections, to synchronize access to that ID3D11DeviceContext.
I would attempt to prepare the GDI drawing on a seperate thread as you stated, but render it to a system memory buffer. Then simply blit the contents to the DXGI surface.
Also note most of these topics address the behavior of the immediate context, the D3D11 Deferred Context may have different behavior.