Here is an answer that is loosely based upon kglr's previous answer. The below solution has been generalized to also handle decimal numbers and scientific form. Your example number list only contained small integers, but others who find this post may find the generalization useful.
The code:
AltNumberFormat[n_, f___,
opts : OptionsPattern[{NumberForm, "AltPadding" -> ""}]] := With[{
IsExtraPad =
MatchQ@First[OptionValue@NumberPadding /. Automatic -> {""}],
altPad = OptionValue@"AltPadding"
},
NumberForm[
N@n, f, FilterRules[{opts}, Options@NumberForm],
NumberFormat -> Function[{m, b, e}, With[
{s =
StringReplace[m, StartOfString ~~ _?IsExtraPad -> altPad]},
If[e == "", s, Row[{s, b^e}, "\[Times]"]]
]]]]
Usage is exactly the same as regular NumberForm, with the addition of an extra AltPadding option. This would usually be used if you wanted to pad with leading zeros (without the extra zeros!) but still get your numbers to left-align, by padding positive numbers with leading spaces.
Test cases:
hdr = Prepend[
Item[#, BaseStyle -> Bold, Background -> LightBlue] & /@ {"Input",
"Format", "Padding", "Output"}];
Row@Map[Grid[hdr@#, Frame -> All, Alignment -> Left,
Background -> {{4 -> LightYellow}}] &]@
Transpose@Flatten[#, 2] &@
Table[
{mn, f, Style[p, ShowStringCharacters -> True],
AltNumberFormat[mn, f, NumberPadding -> p, SignPadding -> True,
AltPadding -> " "]},
{f, {Unevaluated@Sequence[], 4, {6, 3}}},
{n, {0.1, 1.2, 1.23456, 123456, 1.210^15, 1.2345610^15}},
{m, {-1, 1}},
{p, {Automatic, {"", "0"}, {"0", "0"}}}
]
Output:

IntegerStringmay come in handy. – Yves Klett Mar 03 '15 at 18:41{-6, 123}? – Kuba Mar 03 '15 at 18:46