I could be wrong but I think ICEfaces [1] for Java does something like this. I remember seeing a presentation on it at a Rails vs Django vs Java "debate" a few years ago.
It may not be quite the same thing, and I can't really parse the website very well for how it really works. I do remember it holds a copy of the DOM server side then manipulates it over HTTP.
So if you want it in Java, there's that.