Not sure about the number of DIMS but you can get the Lo(), HI() and length of each element at runtime. But you still need to know the Dim count.
I have a class I wrote way back which does allow me to remap the array and of course determine the DIM layout at runtime. All memory layouts are contiguous and if changes are made during runtime they are remapped and that includes the number of DIM element.
I Think in your case however, you could get away with using multiple arrays whereby each one can be determined and reconfigured that points to the next! etc.