Быстрый тест показывает, что если для свойства IsIcheckable объекта MenuItem установлено значение True, оно не будет отображать свои дочерние элементы.
<Menu>
<MenuItem Header="File">
<MenuItem Header="Exit" />
</MenuItem>
<MenuItem Header="Tools">
<MenuItem Header="Options" IsCheckable="True">
<MenuItem Header="one" IsCheckable="True" />
<MenuItem Header="two" IsCheckable="True" />
</MenuItem>
</MenuItem>
</Menu>
В приведенном выше примере в Options не отображаются дочерние элементы.
Редактировать: Причина этого в том, что с точки зрения пользовательского опыта, это не тот случай, который действительно имеет смысл. Единственный случай, о котором я могу подумать, - это проверка элемента, который проверяет все его подпункты, но я полагаю, вам лучше использовать флажки для этого.
Переопределение ControlTemplate, безусловно, является вариантом. Обычно Blend может сказать вам, что это за шаблон управления по умолчанию, и вы можете перейти оттуда.