Not as a validation calculation, but as a conditional format expression. The main draw back is that the size change is approximate. The number of characters isn't very accurate as iiiiiiiiiiiiiii does not require nearly as much space as: WWWWWWWWWWWWWWW even though both are 15 characters in length.
This will be viewed via IWP so conditional formatting is not an option. Too bad though.
An auto-entered calculation could be used. The main draw back is this formatting then supercedes layout formatting. You may want to set up two fields in your table--one with the auto-enter supplied formatting and one that copies this data but inside a textformatremove call to strip out the size formatting.
If ( length (self) < 103; TextSize (self); 10 ; TextSize (self); 9 )
Make sure to clear the "do not remove existing value..." check box.