Сделать меню X*Y, что тривиально и от линейного отличается наличием 4 кнопок навигации вместо 2. И добавить действие "слить пункт с соседним слева". Ячейки, для которых задано такое действие, не отрисовываются, вместо этого в них продолжается соседняя ячейка. Получается аккуратная табуляция и курсор туда-сюда сам по себе не скачет после прохождения "длинной" ячейки (не забывает свой точный столбец).