createTextbox.innerHTML = createTextbox.innerHTML +"<input type=text name='flow'+ i/>"
Your quotes are in the wrong place, the '+i' actually is part of the literal string! What you meant was:
'<input type="text" name="flow'+i+'" />'
(also added quotes to the type attribute: if you're going to use XHTML syntax might as well do it properly.)
You'd then get form control names like 'flow6' sent to your script. A more usual way for PHP users would be to use an array, which you can persuade PHP to do by putting square brackets in the name:
'<input type="text" name="flow['+i+']" />'
You also seem to be missing a:
var createTextbox= document.getElementById('createTextbox');
Don't rely on IE's misbehaviour of turning named elements into global variables; it won't work elsewhere.
Anyhow, avoid appending to innerHTML. Every time you do it, everything inside createTextbox will be labouriously serialised into a stringful of HTML, then you alter the string and write it back, parsing it all back into objects. In the process you lose anything that couldn't be serialised to HTML, such as JavaScript references and event bindings.
If you can do a single write to innerHTML, or use DOM methods to create your elements, that's generally better.