Sigh, random burst of inspiration whilst attempting to try to get to sleep. Haven't proof read this working out, but it seems roughly about right I hope.

It's basically what I did before; with 
1000 998 checkpoints. The aim is to ALWAYS be carrying 1000 apples within the truck where ever possible. And now to hopefully get a good night's rest now that this is off my back. Also, I assume (or maybe it's the sleep deprivation talking) that this can be improved upon when you don't use integers for the number of checkpoints (e.g. a checkpoint every half km, or with an infinite number of checkpoints even), but I'm not going to bother thinking into it too much.
EDIT:
OK since SMF isn't letting me post for some weird reason, I'll just edit this in and expand on what I had last night and hopefully prove it (to myself even, I might have made a mistake)...
My working out last night had 2 distinct phases.
Phase 1: 0-500You've got 3000 apples at A, and we're moving 1000 apples at a time, 1 kilometer at a time. If you move 1000 1 kilometer away, you've got 2000 at A, and 999 1 km away. Repeat this step to get 1000 at A and 1998 at 1 km away. Now move 1000 of the apples at the 1 km mark to the 2 km mark, so you've got 1000 at A, 998 at 1 km and 999 at 2 km. Now of course, move the 1000 at A to the 1 km mark, and you're at 1997 at the 1 km mark and 999 at the 2km mark. This of course follows with 997 at the 1 km mark and 1998 at the 2 km. If you keep repeating this 'shuffle' ,you'll notice that at the step I left off at, the number for the lower numbered checkpoint decreases by 2, but the greater number checkpoint stays constant at 1998 (look at rows 6, 9 and 13). Using this pattern, if 1 is 997, 2 is 995, 3 is 993, then basically if x is y...

, which means at x=499, y=1; which is the step I skipped to.
Phase 2: 501-1000Ok, screw the 1 apple, just ditch it. If we go back to fetch it, it'll be eaten anyway. Time to progress with the 1998 at 500 km. Do the same shuffle movement, just easier; pick up 1000 apples to the 501 km mark to get 999 there, and 998 left at the 500 km mark. Move the ones left behind at the 500 km mark, and we get 1996 at 501 km. Obviously, we're losing 2 apples per kilometer travelled (which makes sense, since we're making 2 distinct trips whilst carrying apples for each km). So if 500=1998, 501=1996, then using x=y again...
)
, so at x=998, y=2. This means the final few steps of this process would be;

So, 999 apples. Anyone see anything wrong with this working out? Otherwise I guess I'm now in the lead =T