Timeline is capable of displaying about 3000-5000 events with no scrolling performance issues. If you do not have events with durations, it can be even more (up to 10000 or more)
Here is one possible way:
1) Set current date(decide what current date is). Split your data in to several overlapping (this will provide better user expirience) intervals. Your data service should return events based on date range.
2) Download initial interval data and call ResetEvents to display them.
3) Subscribe to date changed event. From there load another inteval, if you are crossing the middle of overlapping or current date changed by other method (for instance directly setting CurrentDateTime property), and discard previous interval data.
(Call ResetEvents method, show some kind of "Loading data...").