The wineserver would have to trigger some code in the client, either by having a signal or a generic background thread that could do it on behalf of the other process.
Such a scheme has been discussed before for things like CreateRemoteThread and friends.
That would be usefull too for multithreaded direct3d. Somehow we have to bring another thread to releasing the glxContext, so we can re-use it in a new thread.
Any chance we can do this with signals? e.g. SIGUSER1 to call a wine-provided callback function, which calls callbacks registered by the various dlls?