The solution I arrived at is:
First I added a new literal control before the table code (where I had the fields and wanted to add the controls):
LiteralControl lc3 = new LiteralControl();
Then, I included the LC in the table where I wanted to change the read only value to a control, so for example:
sb.Append(" <td class=\"rowTextLeft\" width=\"25%\">SPR/JDHF Allotment:</td>");
sb.Append(" <td class = \"rowText\" td width=\"75%\">");
lc3 = new LiteralControl(sb.ToString());
Controls.Add(lc3);
TextBox JDHFTxt = new TextBox();
JDHFTxt.ID = "txtJDHF";
JDHFTxt.Enabled = false;
JDHFTxt.Value = ConvertToAllocation(DrACE["SPRAllotment"].ToString());
Controls.Add(JDHFTxt);
sb = new StringBuilder();
sb.Append("</td>");