What they could do is during the 5+ hour "maintenance" routine thingy that only this site seems to require, have a SQL script run through all the threads and just lock the ones that are more than a specified time, such as a year. Could even have a different lock attribute that shows as "archived" or something. Would want to base this off the date of the last post, not the thread itself, though.
In fact instead of running such a large query, this check could be made when a thread is opened. Would just be a php level check, nothing major or resource consuming. The date of the last post could be added to a field of the thread itself to save on querying. Would literally take about an hour to code that in and maybe another hour to test, especially for someone familiar with the vB source code. I did it to an IPB forum years back, I'm sure the process would be fairly similar in vB.