It's actually quite ingenious. The theory seems like it's based on the relationship between the distances of each letter that you type. Once they figure out what the keyboard should look like based on each key to subsequent key, the typed result is then compared to a database of known possible words you were likely to be typing.
I'm guessing there are two to three main algorithms that's making this thing work. It's a lot more advanced than the current iPhone keyboard.
A good way to think of it is to think of a solution to how one can create a number pad on a touch screen that doesn't require you to look at the screen to operate.
The solution is to make the first touch the center (5) and any subsequent drags to be based on the relationship to the 5. For example, press anywhere on the screen and let go to get 5. Press anywhere on the screen then move your finger up and let go to get 8. To get 4, touch anywhere and drag left, then let go. In this fashion, every number can be represented without ever having to look at the screen to touch a specific spot. Every number is calculated based on the relationship to the original touch input.
This keyboard is a highly advanced form of this concept mated to a guessing dictionary algorithm similar to the one already in the iOS. Every key press is calculated in relation to every previous key press in order to calculate what the USER's current "mental" keyboard may look like. That's why it can calculate orientation and size of what the user's mental keyboard may look like in real time, everytime. That's why it's more accurate than the iOS keyboard. It creates a virtual keyboard during the input of every word. The iOS keyboard is still restrained by the static location of the keys and therefore it can't guess beyond a certain extent of error. It can only guess the most common errors.
I still think it's pretty damn ingenious.