Carly,
Got it. So, as long as past courses are held open, you need to have the entries in the external table and the sync will of course process them every time. Over time, the enrolments will grow but most of them will be static and unchanging.
One possible solution (other than hacking up the sync code) would be to change the enrolment method in the old courses to some other method, eg manual or cohort or even flatfile. If you mass change the enrolments to, say, manual on the retirement of a course, it gets them out of the external db which would just hold current course enrolments. Since you won't be adding any new enrolments to such old courses, you can do that process once to swap the enrolment methods in them, and then just let them sit there until the day you finally turn the course off for good. In effect, the external db would be only only for active, current courses. Retired courses would have enrolments with some other method.
Of course, this would depend on other factors, especially numbers. But it would reduce the external db to only handling current active course enrolments.