Cześć,
Nie wiem czy to forms, czy wpf, w przypadku wpf-a dużo projektów korzysta z prism-a, tam masz coś takiego jak ModuleCatalog, a każdy Module (może być w osobnej dll-ce) ma metodę Initialize.
Teraz (nie korzystałem z Ribbon-a, więc nie wiem czy to się uda), viewmodel jest generowany podczas inicjalizacji modułu i dodawany do listy viewmodeli, każdą sekcję generujesz dla viewmodel z listy viewmodeli (ObservableCollection, więc możesz dodawać dynamicznie).
Czyli lista viewmodeli jest przypięta do menu, każdy viewmodel to jedna sekcja, sekcja jest widoczna jak istnieje viewmodel, każdy viewmodel zawiera listę opcji z przypiętym ICommand.
Coś takiego na szybko przyszło mi do głowy, nie wiem jednak czy korzystasz z technologii, o których pisałem wyżej. Pozdrawiam.