Huh. This is a really interesting idea. It could be project-centric with a fairly simple client-server model.
All you would have to send would be the text buffer updates, cursor(s) positions, and file system events (new file/folder, save file). Syntax highlighting, code completion and every other cool plugin-related thing could be handled on the client side. You would NOT want to send keystrokes so that each user could have his/her own keybindings. You wouldn't necessarily need to be working on the same files as the other users, but if you did open a file that another client was working on, you would see the edits in real time.
This could efficiently be done over even a modest connection.
I've briefly looked in to the architectural design of TMUX and it seems that a lot of concepts could be borrowed. It's possible that you could even write a plugin that did this that could communicate with a regular tmux server using the existing tmux protocol.