Search text Box:
Set visible false in PlaceHolderSearchArea container
<asp:ContentPlaceHolder ID="PlaceHolderSearchArea" runat="server" Visible="false">
<SharePoint:DelegateControl runat="server" ControlId="SmallSearchInputBox" Version="4" />
</asp:ContentPlaceHolder>
Add following container
<asp:ContentPlaceHolder ID="PlaceHolderSearchAreaCustom" runat="server">
<SharePoint:DelegateControl ID="DelegateControl1" runat="server" ControlId="SmallSearchInputBox"
Version="4" />
</asp:ContentPlaceHolder>
Custom Menu:
Move SharePoint:AspMenu above the content place holder and set visible false the content place holder.
<SharePoint:AspMenu ID="CustomMenu" runat="server" EnableViewState="false" AccessKey="<%$Resources:wss,navigation_accesskey%>"
UseSimpleRendering="true" UseSeparateCSS="false" Orientation="Horizontal" StaticDisplayLevels="1"
MaximumDynamicDisplayLevels="25" SkipLinkText="" CssClass="s4-tn">
<DataBindings>
<asp:MenuItemBinding DataMember="Menu" TextField="text" ValueField="text" NavigateUrlField="url" />
<asp:MenuItemBinding DataMember="SubMenu" NavigateUrlField="url" TextField="text"
ValueField="text" />
</DataBindings>
</SharePoint:AspMenu>
<asp:ContentPlaceHolder ID="PlaceHolderTopNavBar" runat="server" Visible="false">
<asp:ContentPlaceHolder ID="PlaceHolderHorizontalNav" runat="server">
</asp:ContentPlaceHolder>
</asp:ContentPlaceHolder>
