There is no standard handler to watch this. However, you can fire custom events in Prototype. Combined with Function.wrap, you should be able to do exactly what you need.
Essentially, you take any function that can modify the DOM, such as Element.insert(), and wrap it with a function that fires your change event:
Element.prototype.insert = Element.prototype.insert.wrap(
function(original) {
var ret = original.call(this, $A(arguments).slice(1));
document.fire('dom:changed');
}.bind(this)
);
Now, whenever you call Element.insert, it will fire 'dom:changed', which can be watched with Event.observe().
I can't guarantee what I just wrote is 100% perfect nor 100% versatile, but it should get you started.