Я сделал что-то похожее, когда хотел обработать сообщение WM_EXITMENULOOP, которое не было доступно как событие в .NETCF.
Решением было «создать подкласс» главного меню, старого трюка MFC, где вы заменяете функцию WndProc своей собственной, обрабатываете любые сообщения Windows (в моем случае WM_EXITMENULOOP) и вызываете базовый класс WndProc для всего остального. *
Некоторые примеры кода доступны в блоге Алекса Яхнина о том, как подразделить элемент управления:
Пример создания подкласса окна в .NETCF
В вашем случае вы бы на самом деле делили на подклассы Форму, в которой находится MainMenu, и я думаю, что WM_DRAWITEM будет сообщением Windows, которое вы захотите обработать самостоятельно.
Я сам не пытался изменить цвет фона, поэтому не уверен, что это сработает, но подклассы - это то, с чего я бы начал.