So I found a way to add the default drop down menu to the items of a custom web part control. Its pretty convoluted, so if you form a more direct way let me know. See code below:
This Template is needed to be instantiated, but we don't render it... (lil trick)
msaListMenu = new MenuTemplate();
msaListMenu.ID = "DocLibMenu";
I use this menu column to expose multiples values I need for the menu:
SPMenuField msaColMenu = new SPMenuField();
msaColMenu.HeaderText = "Name";
msaColMenu.TextFields = "FileLeafRef, ID, COUID";
//msaColMenu.TextFormat = "{0}/{1}/{2}";
msaColMenu.MenuTemplateId = "DocLibMenu";
//msaColMenu.
msaColMenu.NavigateUrlFields = "FileLeafRef";//Client_x0020_Name_x0020_2";
msaColMenu.NavigateUrlFormat = SPContext.Current.Web.Url+"/[Doc Library Name]/1/{0}";//1
msaColMenu.TokenNameAndValueFields = "EDIT=ID,NAME=Title,TYPE=DocIcon,REF=FileLeafRef";
msaColMenu.SortExpression = "Title";
msaGrid.Columns.Add(msaColMenu);
Javascript I implanted directly after the rendering of the SPGridView Control (this javascript manipulates the menu field that we put in our SPGridView control and gives it the identical html that the default web parts use for their menus:
string transplantMenuFunction = "";
transplantMenuFunction += "<script>\n";
transplantMenuFunction += "function transplantMenu(){\n";
transplantMenuFunction += " var error;\n";
transplantMenuFunction += " try{\n";
transplantMenuFunction += " var msaGridView = document.getElementById('" + msaGrid.ClientID + "');\n";
transplantMenuFunction += " var spans = msaGridView.getElementsByTagName('span');\n";
transplantMenuFunction += " for(var j = 0; j < spans.length; j++){\n";
transplantMenuFunction += " if(spans[j].title == 'Open Menu'){\n";
transplantMenuFunction += " //t = t+1;\n";
transplantMenuFunction += " var valuesString = spans[j].children[0].children[0].children[0].children[0].children[0].innerText;\n";
transplantMenuFunction += " var values = valuesString.split('/');\n";
transplantMenuFunction += " spans[j].innerHTML = '<table height=\"100%\" cellspacing=0 class=\"ms-unselectedtitle\" onmouseover=\"OnItem(this)\" CTXName=\"ctx1\" Id=\"'+values[1]+'\" Url=\"" + SPContext.Current.Web.Url + "/" + SPContext.Current.List.Title + "/1/" + "'+values[0]+'\" title=\"" + SPContext.Current.Web.Url + "/" + SPContext.Current.List.Title + "/1/" + "'+values[0]+'\" DRef=\"" + SPContext.Current.Web.Url.Replace(SPContext.Current.Site.Url+"/", "") + "/" + SPContext.Current.List.Title +"/1" + "\" Perm=\"0x7fffffffffffffff\" Type=\"\" Ext=\"\" Icon=\"icgen.gif||\" OType=\"0\" COUId=\"'+values[2]+'\" HCD=\"\" CSrc=\"\" MS=\"0\" CType=\"Item\" CId=\"0x010051390B24CF204947B3B8CFAA6DADB0BF\" UIS=\"512\" SUrl=\"\"><tr><td width=\"100%\" Class=\"ms-vb\"><a onfocus=\"OnLink(this)\" href=\"" + SPContext.Current.Web.Url + "/" + SPContext.Current.List.Title + "/1/'+values[0]+'\" ONCLICK=\"GoToLink(this);return false;\" target=\"_self\">'+values[0]+'<!--<IMG BORDER=0 ALT=\"'+values[0]+'\" title=\"'+values[0]+'\" SRC=\"/_layouts/images/icgen.gif\">--></a></td><td><img src=\"/_layouts/images/blank.gif\" width=13 style=\"visibility:hidden\" alt=\"\"></td></tr></table>'\n";
transplantMenuFunction += " \n";
transplantMenuFunction += " }\n";
transplantMenuFunction += " }\n";
transplantMenuFunction += " }\n";
transplantMenuFunction += " catch(error){\n";
transplantMenuFunction += " alert(error.message);\n";
transplantMenuFunction += " }\n";
transplantMenuFunction += "}\n";
transplantMenuFunction += "transplantMenu();\n";
transplantMenuFunction += "</script>\n";
writer.Write(transplantMenuFunction);