I would consider using screen to do this. Although, the only method I know of does produce some security concerns. Screen has the ability to create access control lists and the ability to allow multiple screen sessions with a variety of permissions. The setup can be a bit tricky, but the idea is this:
- Create a user account for your coworker.
- Give your coworker ssh access to your machine.
- Make the screen executable setuid root (dangerous).
- Change the permissions on
/var/run/screen to 755 (Other permissions setups might be doable, this is just what I've always done. Also, this is the path on Debian, I'm unsure if it is different elsewhere)
Edit your ~/.screenrc to enable multiuser mode:
multiuser on
Edit your ~/.screenrc to set up the right permissions using the commands: acladd, aclchg, and aclgrp. See the man pages for the details.
Your coworker could then log into your machine via ssh and connect to your screen session. Via the ssh config, you could actually force him to connect to the screen session upon his logging in. The following blog post has more detailed instructions (these directions are roughly based off of them) in the context of holding a class using screen:
http://blog.dustinkirkland.com/2009/04/teaching-class-with-gnu-screen.html
Your use case is a bit different, but I think that the only real difference will be the permissions you set in ~/.screenrc and the name of the user.