Is it possible to hide menu items based on path?
Yes you can by using an access callback which when defined calls a function. In this function you can analyze the path and based on that return TRUE or FALSE. When you return FALSE, the menu item is not visible. See the documentation of hook_menu for more details.  

A simple example:

// in hook_menu something like this, important part is the 'access callback'
 $items["menu/item"] = array(
     'title' =&gt; "menu item 1",
     'description' =&gt; 'Access test',
     'page callback' =&gt; 'node/1',
     'access callback' =&gt; 'check_path',
     'menu_name' =&gt; 'navigation',
     'type' =&gt; MENU_NORMAL_ITEM,
 );

// then define your access callback function
  function check_path(){
    // check path here and return TRUE or FALSE
    return TRUE;
  }


I just asked a similar question dealing with this: How to build a dynamic menu structure. You may find more information in that question that can help you.