To the best of my knowledge, it's not possible, but I didn't try very hard to get it to work when I played with it.
My understanding is that the different categories of objects have different properties and behave differently in the world - ie, mobile vehicles & units obey gravity, while making buildings and ammo crates obey gravity would be something of a waste of processor cycles, given that they're unlikely to (eg) step off the edge of a cliff.
It may be possible to modify the .cpp of an ammo crate (to make a custom crate) which would behave differently, and therefore do what you want it to.
I don't know much about .cpp hacks.
If anyone has successfully tried this, please post your technique/snippet/tutorial to the Editor's Depot, as ammo crate paradrops would be a lovely thing... ;D
Edit: Ok, I thought of something you could try. I haven't tried this, but it should give you
something...Write a looped setpos script that controls the parachute and the ammo crate (have a look at the 'hanging' part of the heli4drop.sqs script you mentioned for the type of thing I mean) and then use that sort of relative setpos to decrease the Z value of the setpos progressively.
ie:
crate is crate1, heli is heli1, chute is chute1
_xpos = getpos heli1 select 0
_ypos = getpos heli1 select 1
_zpos = (getpos heli1 select 2) - 2
#droploop
setpos crate1 [_xpos, _ypos, _zpos]
setpos chute1 [_xpos, _ypos, (_zpos +1)]
_zpos = _zpos - 1
~0.1
?!(_zpos < 1): goto "droploop"
crate1 setpos [_xpos, _ypos, 0]
Exit
Ok, that should give you something but:
1) No drift for wind - comes straight down
2) will act a bit odd when it lands
3) I haven't tried it... might work..
4) You'll have to play with the PAUSE delay and the -Z value to get a vertical speed that looks right.
Just off the top of my head.. lemme know if that works..