I want to announce new model, "diagonal storage" which combines benefits of both approaches. The idea is very simple: we first store column 1 of first record, then column 2 of second record, ... and so on until we reach the last column. After it we store second column of first record, third column of the second record,...
I'm a little worried about the fact that even with this model we're still limited to only two dimensions. That's bound to cause problems sooner or later.