I've got a working version now, though I wouldn't really call it a "port". At the end of the day, it's probably best to call it "inspired by". The internals are nothing alike, and the API is similar but by no means identical. I adopted a much more OO approach, in that a Table is an object, TableRow is an object, TableData is an object, etc.
The end result is probably a much more "widget-like" interface than the Perl version and even lets me do some things I don't think are possible in HTML::Table, like delete a row or configure a row on the fly, instead of configuring it after-the-fact.
All this has given me some ideas to share with Anthony Peacock (current maintainer of HTML::Table), though I fear a major re-write of the internals would be necessary.