Объясните, чем здесь является elem.onclick?
В конструктор передаётся html элемент.
Ему в onClick назначается одноимённый метод класса Menu.
то есть в onClick элемента кладётся вот это:
onClick(event) {
      let action = event.target.dataset.action;
      if (action) {
        this[action]();
      }
    }
с забинженным контекстом на инстанс класса. Так как по умолчанию в обработчиках событий this равен элементу.
А вот зачем там в _elemкладётся elem это загадка.
Это чтобы у обработчика был контекст этого объекта. Чаще замыканием делают, но тут - так.
elem.onclick = e => this.onClick(e); // замыканием - так. этот код - не совсем эквивалент, но делает то же.