It's technique as much as training
Double-Stop-Catch-up: Pause your stroke for a moment when both hands are forward (like normal catch up drill) and also when each hand reaches your thigh before exiting the water. This drill can be very slow going, add fins if you have a hard time staying afloat or making the interval.
Finger-Tip Drag:Swim regular freestyle. When your arm is out of the water (recovery phase) keep your elbow pointed toward the sky and your fingertips pointing down toward the water. Allow your fingertips (about 1/2 inch) to drag through the water from your hips all the way past your head.
Catch-Up: Swim regular freestyle. As you take a stroke with your right arm, keep your left arm extended forward in the water. Complete the stroke with your right arm and after it enters the water above your head, tap your left hand. This signals the start of the stroke with your left arm. Keep your right arm extended forward in the water until the left stroke is completed and hands tap together. Catch-Up w/Board or Stick or Single Paddle: Use a sideways kick-board or a stick to perform the drill above. Keep your hands shoulder-width apart and exchange the board or stick from hand-to-hand between each stroke.
Shark Drill: Use a pull buoy or a kick board between your thighs. After the finish of each stroke, reach back and tap the part of the buoy that is above water. This drill emphasizes finishing your stroke all the way to mid-thigh.
Sailboat Drill: Hold a kick board between your thighs. Make sure 1/2 of the board is sticking below your body when you swim freestyle. Use your core muscles to control your hip rotation (while the board tries to prevent rotation).
Fist Drill: Swim regular freestyle. Ball your hands into fists and work on high elbow catch and pull under the water. 6-kick-switch: When you push off the wall, take one underwater pull with your right arm and pause (right arm against your side, left arm extended overhead) for 6 kicks. After six kicks, complete the stroke with your right arm, tap your left hand, and repeat with your left arm.
3-6-3: Take three strokes and pause on your right side with right arm extended forward and your left arm lying on left side. Remain in this position for six kicks. Take three more strokes and pause on your left side for six kicks. Repeat.
Single-Arm Drill: For learning the correct pulling motion. Grasp a small kickboard in your left hand and extend your left arm above your head. Swim a lap of the pool with just right arm strokes. This will allow you to focus on a perfect underwater pull with your right arm. Switch arms and swim another lap.
Thumb-Drag Drill: Swim a lap of freestyle while you drag your thumb along the side of your leg as you lift your arm out of the water. At the beginning, you might feel your thumb drag along your rib cage, waist, or hip. This means you are not finishing to the middle of your thigh. You have a complete finish when you feel your thumb dragging along the side of your leg.
Tarzan Drill: Swim freestyle with your head out of the water. Look forward as if you were sighting a buoy or landmark in open water. Keep your head out of the water for the entire 25 to strengthen your neck muscles for triathlon swimming!
Underwater Recovery Drill: Swim freestyle but do not let your arms exit the water at the end of the underwater pull. As your hand reaches your thigh, bend your elbow and slide your hand forward along the side of your body. This is very similar to doggy-paddle but with an entire underwater stroke. Keep your head in the water and breathe to the side like normal.
Reverse Catch-up Drill: Push off the wall with both hands on your thighs. Take a complete stroke with your right arm, when it completes the rotation and touches your thigh, that is the signal to start the next stroke with your left arm. Continue alternating arms, with the non-stroking hand resting against your thigh.