ставить всевозможные глобальные эвент листенеры
$(document).on('click' ...);
и тд onscroll, onkey down/up/press, on mouse down/up.
в листенере берем XPath путь элемента target на котором произошло событие.
отправляем тип события и путь и вспомогательные параметры через вебсокеты.
на второй стороне через сокеты слушаем эти события.
ищем элемент по xpath и эмулируем это событие.
но задача совсем не так проста как кажется, если делать чтото по такому принципу - универсально - то будет много багов. например оба юзера кликают по разным кнопкам и открываются 2 диалога, но в системе может быть открыт только один модал - в итоге у каждого будет открыт свой диалог.
не даром системы которые вы назвали не делают копию интерфейса - это очень сложно - они передают только базовые события (клики, нажатия клавиш) на один из компов а второй видит только скрин - картинку. поэтому выполняться должна только одна копия где то, а второй (или даже оба) смотрят картинку - в браузере скрин не сделаешь понормлаьному - выход отправлять на сервер события юзеров и рендерить там например в phantomjs а юзерам отправлять скрины. минус в быстродейстии, скаип и тимвьювер быстры т.к. годами учатся сжимать картинку и передавать только изменения, для данной задачи это сложновато.
рекомендовал бы вам именно привязываться к конкретно вашему интерфейсу.
один юзер открыл диалог - отправляем событие открыть диалог у другого. юзер сменил слайд - отправить событие сменить слайд. и так все что надо синхронизировать.
скорее всего ваш босс просто недооценил задачу, и универсальное решение будет для него очень дорогим....