It looks as if the table's ColumnFormat property is set to rat, but that would require setting the property. It looks like you're using GUIDE, so open up the Property Inspector on the uitable and see what the ColumnFormat property is. Set it to an appropriate numeric format.
EDIT TO ADD: sorry, didn't read your initial comment carefully enough. Um... why are you converting to a sym to print the number? If you need a symbolic variable somewhere, extract from UserData.matrix and convert there. Rational display is standard for symbolic variables, so the behavior you're seeing makes perfect sense.
EDIT #2: OK, so it sounds like the actual problem you're trying to solve is: "can I set the formatting so that numbers and strings are both justified the same (either left or right)?" Yes. Just, treat everything as a string:
h = uitable;
Don't use sym unless you are actually doing symbolic calculations. It is not a fundamental data type in MATLAB, so these conversions aren't really doing much other than slowing down your code.