Ничего не понял. Что значит "по часовой стрелке"? Двумерный массив обойти спиралью? Ну, не знаю, где такое может применяться, ну тогда да, рекурсивно проще. Пишем простую рекурсивную функцию с параметром - глубиной спуска - с базой в нуль (или половина размера массива, так будет понятнее, что значит глубина). Потом аккурат обходим массив, берём первый элемент, например, верхний правый. Потом левее. Дошли до границы? Теперь нижний, так до следующей границы. Потом идём вправо, и, наконец, вверх. В конце - функция вызывает саму себя, спускаясь по глубине дальше.
Если же надо на экране распечатать массив по часовой стрелке, то здесь надо будет выбрать центр на экране и переходить по экрану (например, c помощью
VT100-кодов или
JCurses). Немного синусов - косинусов. И магия - можно отображать часы.