If it comes down to that, you can, but it will get quite a bit more complicated.
You'll be using regex to break apart the contents of the existing text. Because sprite fonts should have a fixed width, you should be able to find out how many characters are before and after your insertion point. With that, you'll be able to use regex replace to insert characters in the middle.
Positioning the insertion point should be relatively simple, for example if you were using arrow keys it would just move left and right one character width per button press.
I don't have time to put it together myself right now, but I can imagine how it might work.