There's about a dozen programs out there to lazily cache Debian repositories. What these do is act as a proxy to Debian apt repositories, serving apt on local Debian machines.
Read how to do it your own way
And then I realized there's an out-of-box solution. Plug any caching HTTP proxy into some web server proxying requests for /foo to http://some-repository.example.com/debian/foo. Configure apt clients to use the caching proxy to access the indirection-server; then your cached downloads will carry over even if you switch to another repository. (In theory.)