Thanks OtherNiceMan,
However I found MT already supports what I want. The plugin you recommended is not needed.
I used the following code in an archive template with Category mapping and it worked:
CODE
<mt:ArchiveList archive_type="Category-Yearly">
<ul>
<MTEntries>
<li><$MTEntryTitle$></li>
</MTEntries>
</ul>
</mt:ArchiveList>
It outputs all entries from a category, grouped by <ul> for every year.
Initially no output was produced, then I learned
you have to be publishing a yearly archive in addition (Category Yearly in my case). So I added a Category Yearly mapping and it worked. I wonder why there is such a requirement. Since I don't need separate category-yearly pages, I set its Publishing option to "Do Not Publish".