There is an easy way to do this, and a hard way. You are asking to do it the hard way, but the reasons you gave for doing so are mistaken.
So I'm going to explain the easy way again.
You can always drag a control between two other textboxes. Doesn't matter whether there is space there in the designer view or not. Just drag the validator between the two textboxes and it will make space. If you have trouble doing that, switch the view to source code mode and drag the validator between the two textboxes.
If you set the validator's property to dynamic instead of static, it will only take up space on the rendered page that the user sees if there is an error. Otherwise, it will take up no space in the page the user sees.
You can, of course, go to all the trouble to add the validation control at runtime. That's extra lines of code and headache just to get the validation control put in the exact same place with the exact same property settings.
Best of luck, and give it a try!
If this answered your question, be sure to mark it as the answer. That way, everybody after you will know it's the answer also!