Let’s try to explain with small words only…
To give an impulse to a rigid body, you must animate it. You must keyframe its position and also the “Animated” option in the Physics tab.
For example, you want your bullet you hit the target around frame 100. Go to frame 100, position your bullet close from the target. Keyframe its position and the “Animated” option as OFF. (Bring your mouse over the option and press [I].) Go back to frame 99. Keyframe the “Animated” option as ON. Go back to frame 1. Move your bullet far away from the target and keyframe its position.
To make sure things work correctly, select the bullet, go into the Graph Editor, press [A] once or twice to select all, then [V] to set the keyframe handles type. Choose “Vector”. (Otherwise the bullet will speed up and down in between the keyframes.)
Press “Play”. It works!
Now, to give a specific speed to your bullet, you must do some math. Convert the speed into m/s. Good, you already have that. Divide the distance by the FPS you’ll be using to render. For example: 1000/24 FPS equals 41.666 meters per frame.
So, instead of “far away”, your bullet should be 41.666*99 meters away from the target at frame 1 to hit it around frame 100 at 1000 m/s. That’s 4125 m… And it’s stupid to work at this scale.
Go into the Graph Editor, select everything in the list on the left and press [X] to delete.
Go to frame 3. Keyframe the “Animated” option as OFF. Go to frame 2. Keyframe the “Animated” option as ON and keyframe the position of the bullet far away from the target. Go to frame 1, move your bullet 41.666 meters backwards and keyframe its position.
In theory, it gives an impulse to the object and let it travel on physics only.
It works… but you better crank up the “Steps per Second” and the “Solver Iterations” in the “Rigid Body World” panel (in the Scene tab) or your bullet will just fly across the target without hitting it.
Sorry for the few long words.