SynEdit has CharWidth and LineHeight property, that tells you the width/height of a single char. So you can calculate the space needed..
As for limiting the input, I would assume you handle keydown/Up/Press yourself (so you can handle special chars, escape sequences, etc), and modify the text with TextBetweenPoints[Point(75,2),Point(76,2)] := 'a';
So no line is allowed to have more than 80 chars ever.
You can control, if scrollbars should be shown, if the text does not fit in the component's space.
I suggest to pre-fill the 25x80 with spaces (and disable trim-trailing-spaces), so the scrollbars will not depend on content.
Also disable eoScrollPastEol from Options.
If you do not want scrollbars, you can modify the font size by trial and error....
If you want the x/y ratio changed, you can add spacing via ExtraCharSpacing and ExtraLineSpacing. Negative values allowed too, but may no look very good.
And then add something like a PositionHighlighter (see examples/synedit folder in your lazarus dir)