Я не специалист в области драйверов, хотя в целом знаком с принципами создания драйверов NT. Мне кажется, что использовать для этого - теоретически - можно любой компилятор, однако на практике может быть очень много проблем. Кроме заголовков API уровня ядра, которые есть в С DDK, еще ведь нужно линковать бинарник особого формата и т.п.

Касатель Оберонов мне видятся два относительно простых варианта:
1 - на каком-либо инструменте из этой серии (XDS Oberon?) генерировать объектные файлы некоторого универсального формата, понятного для Visual Studio, затем писать некоторую прослойку для драйвера на С & DDK, затем линковать это воедино.
2 - использовать некоторую реализацию Оберона, которая компилирует Оберон в код на С. Ну а затем уже собирать в Студии.

...ИМХО...