Actually, BGP can swing that. Routing involves two distinct
components: the routing information base (RIB) and the forwarding
information base (FIB). BGP is part of the RIB portion of that
process. It's always implemented in software (no hardware
acceleration). It's not consulted per-packet, so as long as the update
rate is slow enough for the CPU to keep up and there's enough DRAM
(which is cheap and plentiful these days) to hold the entire thing,
there's no particular upper bound to the number of routes.