without making runat="server" on html control, then try this
on .aspx page
<head runat="server">
<title>Untitled Page</title>
<script type="text/javascript">
function HtmlTextboxValue()
{
document.getElementById("textbox_html").value=document.getElementById("<%=textbox_temp.ClientID%>").value;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<asp:hiddenfield id="textbox_temp" runat="server" />
<div>
<br />
<br />
<br />
Asp Textbox : <asp:textbox id="textbox_asp" runat="server" />
<br />
<br />
<br />
Html Textbox : <input type="text" id="textbox_html" />
<br />
<br />
<br />
<asp:button id="Button1" runat="server" text="Button" onclick="Button1_Click" />
</div>
</form>
</body>
on codebehind .cs page
protected void Button1_Click(object sender, EventArgs e)
{
textbox_temp.Value = textbox_asp.Text;
Page.ClientScript.RegisterStartupScript(Type.GetType("System.String"), "addScript", "HtmlTextboxValue()", true);
}