必要なのはhttp://msdn.microsoft.com/en-us/library/system.web.ui.itemplate.aspxです
HTML
<test:NamingControl runat="server" ID="NamingControl" TitleFormat="This is myTitle">
    <TitleFormatTemplate>
         My title is <%# Container.TitleFormat %>
   </TitleFormatTemplate>
</test:NamingControl>
UserControl
public partial class MyUserControl : System.Web.UI.UserControl
{
    private ITemplate template;
    protected void Page_Load(object sender, EventArgs e)
    {
    }
    public string TitleFormat
    {
        get;
        set;
    }
    [PersistenceMode(PersistenceMode.InnerProperty), 
    TemplateContainer(typeof(TitleFormatTemplate))]
    public ITemplate TitleFormatTemplate
    {
        get { return template; }
        set { template = value; }
    }
    protected override void CreateChildControls()
    {
        base.CreateChildControls();
        TitleFormatTemplate t = new TitleFormatTemplate();
        t.TitleFormat = this.TitleFormat;
        template.InstantiateIn(t);
        this.Controls.Add(t);
        this.DataBind();
    }
}
チャイルドコントロール-INamingContainer
public class TitleFormatTemplate : Control, INamingContainer
{
    private string _TitleFormat = "";
    public string TitleFormat
    {
        get { return _TitleFormat; }
        set { _TitleFormat = value; }
    }
}
よりシンプルなアプローチ-TitleFormatタグはもう必要ありません
MyUserControl.ascx
<%@ Control Language="C#" AutoEventWireup="true" CodeBehind="MyUserControl.ascx.cs"      
    Inherits="testgingweb.usrcontrols.MyUserControl" %>
<a href="www.somewhere.com"><h3><asp:Label runat="server" ID="PassedValueLabel"></asp:Label</h3></a>
コードビハインド-MyUserControl.ascx.cs
public string TitleFormat
{
    get { return ViewState["TitleFormat"]; }
    set { ViewState["TitleFormat"] = value; }
}
protected void Page_Load(object sender, EventArgs e)
{
    PassedValueLabel.Text = String.Format("Whatever {0} here", this.TitleFormat);
}
HTML
<test:MyUserContorl runat="server" ID="NamingControl" TitleFormat="This is myTitle">
</test:MyUserContorl>
TitleFormat私はもうタグを持っていなかったことに注意してください。