You can do this very easily by changing the initSpeed value in the cfgMagazines. I don't know if the ArmA engine could handle speeds of 3000 m/s.
You could do this very easily in script only with a fired event handler. Add this to the unit's init line:
this addEventHandler ["FIRED", {[_this, 3000] call fRailgun}];
add this to your init.sqf:fRailgun = compile preprocessFileLineNumbers "railgun.sqf"
and add the following script to your mission folder:
railgun.sqfprivate ["_bullet", "_initSpeed", "_vel", "_velSqr", "_ratio", "_velRail"];
_bullet = nearestObject [_this select 0 select 0, _this select 0 select 4];
_initSpeed = _this select 1;
_vel = velocity _bullet;
_velSqr = 0;
{_velSqr = _velSqr + (_vel select _x)*(_vel select _x)} forEach [0, 1, 2];
_ratio = _initSpeed / (sqrt _velSqr);
_velRail = [];
{_velRail = _velRail + [_ratio * (_vel select _x)]} forEach [0, 1, 2];
_bullet setVelocity _velRail;