I think you'd be better explaining more of what you are wanting to do with the fontstrings after they are created. From what you've posted it seems like you are thinking you have to create a new frontstring every time you want to display something different whereas you only need to create a fonstring once and there after, just change the text it displays.
eg.
Lua Code:
local f = CreateFrame("Frame", nil, UIParent)
f:SetSize(5, 5)
f:SetPoint("LEFT", 10, 0)
f.FontStrings = {}
for i=1, 20 do
-- add a fontstring to the f.FontStrings table so we can re-use them as required
tinsert(f.FontStrings, f:CreateFontString(nil, "OVERLAY", "GameTooltipText"))
-- set them up in a column for demonstration purposes
if i == 1 then
f.FontStrings[i]:SetPoint("LEFT")
else
f.FontStrings[i]:SetPoint("TOPLEFT", f.FontStrings[i-1], "BOTTOMLEFT", 0, -1)
end
end
-- set the initial texts (which could also be done after creating the fontstring but this is for demonstration.
for i=1, #f.FontStrings do
f.FontStrings[i]:SetText("Entry"..i)
end
-- Some time later you might need to change your displayed texts too:
for i=1, #f.FontStrings do
f.FontStrings[i]:SetText("Exit"..i)
end