It involves setting up a locking mechanism from (nearly) top to bottom in the webapp. I looked at doing that months ago for my support app, however, mental exercises quickly showed how difficult that would be before I even got to write any code. The problem, of course, is the statelessness of web pages.
However, maybe you could do something clever with journalling. Thinking out loud here, each edit page would be given a timestamp of the data state. A subsequent post, probably 90 seconds alter, would check for any logged changes between that timestamp and now. If there are any, it would either see if it's changing what's already been changed (how good is your logging? :-) or throw back a message to the display layer with a the new state.
Wade.