After several days I managed to have the scrolling working not without some pain. You know, expose areas are evil specially if you assume things you shouldn't...
GtkTreeView scroll is different for vertical and horizontal directions. I still don't know why this inconsistency but I decided to do both directions identical. The main reason is code readability. I'm a Python programmer so you can guess speed is not my top priority...
Next thing in mind is to support mouse clicks to change the current cell.