You’ll need to learn about network programming (sockets). You’ll need to invent a protocol to enable the remote user to interact with the environment.
In the running opengl app you will need to decide where you will accept the input from the remote user. I wrote an app a while ago which simply polled the socket in the idle loop. If there was data, it decoded the message and actioned it, else, well, nothing coz it was the idle loop.
For a more complete solution you most likey want to devise a “user managment” system which manages users local and remote and then this process communicates with the opengl application.
As for pre-existing resources. You may be out of major luck. To recap …
Check network programming - sockets.
Check idle loop, or other places where data can be processed from the remote user.
Make sure the local user data is also processed!
I did exactly this for one of my University classes a few years ago. A 2d plan view on one pc updated a 3d view of the same scene on another pc (actually, I was using Unix workstations). I used sockets too.