В чем отличие двумерного массива от массива массивов?
Принципиальное отличие в том, что у массивов внутри массива могут быть разные размерности. 
Если наглядно представить себе массив массивов как таблицу, а внутренние - как строки, то эти строки могут быть разной длины, эта таблица будет как бы ступенчатая. Для двухмерного массива таблица будет прямоугольная, все строки одинаковой длины.
Обратите внимание на свойство Length:
Для массива массивов myArray:
myArray.Lenth - вернет число вложенных массивов,
myArray[0].Length - размер первого вложенного массива,
myArray[1].Length - размер второго вложенного массива, который в общем случае не равен myArray[0].Length,
и т.д.
Для многомерного массива myArray:
myArray.Lenth - суммарное вернет число элементов по всем измерениям,
myArray.Rank - число измерений массива,
myArray.GetUpperBound(dimension) - размера массива по измерению dimension (от 0 до myArray.Rank-1).
Доступ к элементам многомерных массивов и массивов массивов тоже осуществляется по-разному. Вот тут можно почитать про особенности доступа к элементам массива:Массивы массивовМногомерные массивы
Двумерный массив это единый блок памяти под элементы.
А массив массивов это пространство для хранения указателей на размешение массивов элементов.