How does event sourcing handle aggregates that may be larger than memory?
Smaller aggregates.
You really don't want your streams/aggs to come close to being that large.