Como puedo ver con el inspector de Chrome, primero se separan en dos columnas, con la posición: absoluta. El de la izquierda con un conjunto de propiedades css "izquierda" y el de la derecha con un conjunto de propiedades css "derecha".
Luego, cada columna tiene dos filas, que usan el mismo método, al revés (con las propiedades css superior e inferior establecidas).
Luego ingresa javascript. Cuando se tira de la palanca, se cambia la altura o el ancho de cada columna o fila de parejas para obtener la misma suma.
EDIT: Aquí puede ver algunos javascript de jsfiddle.
onDrag_horizontal cambia el tamaño de dos filas de una columna. Se toma la posición de la h mango (var top = (h.getPosition(this.content).y + h.getHeight()/2)/this.content.getHeight() * 100;
) y a continuación, establece la altura de las dos filas en consecuencia
var onDrag_horizontal = function(h) {
var windows = h.getParent().getElements('.window');
var top = (h.getPosition(this.content).y + h.getHeight()/2)/this.content.getHeight() * 100;
windows[0].setStyle('height', top + '%');
windows[1].setStyle('height', 100 - top + '%');
}.bind(this);
onDrag_vertical hace lo mismo, pero con el asa vertical, que cambia el tamaño de las dos columnas
var onDrag_vertical = function(h) {
var left = (h.getPosition(this.content).x + h.getWidth()/2)/this.content.getWidth() * 100;
this.columns[0].setStyle('width', left + '%');
this.columns[1].setStyle('width', 100 - left + '%');
}.bind(this);
Se podría colocar todas las áreas de texto absolutamente, y luego solo cambia sus propiedades CSS 'top'/'left' /' bottom'/'right' ... –