Actually the scrollbar should be that hard to add. Both the Inventory and the Locker inherit from the XComList class, which has a bunch of built-in functionality to implement the XComScrollBar, which is how all of the scrollbars in the Strategy Game UI are built.
It's just that the Inventory list didn't initialize the scrollbar, while the locker list did.
As far as editing the AS files ... if you've had training in Flash that's more than I have. 
Currently the way I've been able to edit actionscript is via the extracted SWF files (which I think are now available through the wiki). I used the JPEXS free flash decompiler, which allows you to make some edits at the operator level (not in the high level actionscript, but at the level of push/pop). I then can recompile and preserve references and jump offsets automatically. With the new SWF hex code (which has to remain the same size), this generates the find/replace hex in the decompressed Command1.upk.
A little bit of a workaround, but not impossibly difficult. Trick usually is coming up with new AS that exactly matches the original size (in hex). Without that the upk replacement will fail 
-------------------
The definition of which item box type to use is done in UISoldierLoadout.UpdateInventoryList via :
case 0:
Type = 1;
break;
case 1:
case 2:
Type = 2;
break;
case 3:
Type = 3;
break;
Simply changing all cases to set Type = 3 will make Armor / Weapon / Pistol use the smaller box. Although the remove item icon will be displayed, it will not be functional except for small items. If the display of the "remove item" icon is worrisome, could instead just switch the armor (case 0) to set Type = 2, which will make the armor display in the much smaller weapon/pistol-size box.
That should then require less overlap of boxes in order to fit 4 or even 5 small items into the space.
This hex effectively implements this (but since the 1 for case 0 is a single byte I instead nulled out the break; statements):
UISoldierLoadout.UpdateInventoryList
original hex:
0A FF 00 25 0F 00 38 15 00 00 26 06 2E 01 0A 03 01 26 0A 17 01 2C 02 0F 00 38 15 00 00 2C 02 06 2E 01 0A 2B 01 2C 03 0F 00 38 15 00 00 2C 03 06 2E 01
new hex:
0A FF 00 25 0F 00 38 15 00 00 26 0B 0B 0B 0A 03 01 26 0A 17 01 2C 02 0F 00 38 15 00 00 2C 02 0B 0B 0B 0A 2B 01 2C 03 0F 00 38 15 00 00 2C 03 06 2E 01