Force access denied on 'admin/structure/menu' for everyone except admin
Menus are cached, but decision making functions aren't. So what you need is:

function MYMODULE_menu_alter(&amp;$items) {
  $items['admin/structure/menu']['access callback'] = 'MYMODULE_menu_admin_access';
}

function MYMODULE_menu_admin_access() {
  return $GLOBALS['user']-&gt;uid == 1; // Or whatever makes most sense for your use case.
}