1) Have a look at Knockout.js
It follows an MVVM pattern and will automatically push out notifications to the View based upon changes to the Model. For instance, look into their observable array to provide a little more information on how they do that.
2) Mix that in with SignalR and you should now have the ability to send out notifications to other users working on the document. From their site:
So you'll need to have some hooks at your model level within Knockout.js to make some SignalR calls whenever a change occurs. The other clients will receive the notice from SignalR and then trigger a corresponding change in their copy of the Model, which will push back up to their View.
It's an interesting combination of the two frameworks, and you should be able to search and gather more information to handle the particulars.
For example, this codeproject example specifically addresses
Co Working UIs and Continuous Clients which seems to be exactly what you're trying to do.
New age web applications may need to offer new age user experiences - and should handle co-working and continuous client scenarios properly. This involves ensuring that the user interface is syncing properly itself across devices and across users to ensure the state of the application and user interface is maintained "as is".
This blog post looks to be an entry point into a series of blog posts discussing the use of the two packages and contrasts that with a traditional ASP.NET approach. May provide some points for consideration while you're designing your site.
This blog post appears to be a little bit more basic and provides the groundwork for combining the two packages.
Disclosure: I'm not affiliated with any of the above links, nor have I really dug into their content to see how sound or correct it is.