I think that find_cell can be implemented without JS.
Probably only html5 tables since it is easier (no need to support colspan=0 and rowspan=0, they are also buggy in some browsers http://code.google.com/p/chromium/issues/detail?id=58223, http://code.google.com/p/chromium/issues/detail?id=46009)
html4 notes: Table rows may be grouped into a head, foot, and body sections, (via the THEAD, TFOOT and TBODY elements, respectively). Row groups convey additional structural information and may be rendered by user agents in ways that emphasize this structure. User agents may exploit the head/body/foot division to support scrolling of body sections independently of the head and foot sections. When long tables are printed, the head and foot information may be repeated on each page that contains table data.
Authors may also group columns to provide additional structural information that may be exploited by user agents. Furthermore, authors may declare column properties at the start of a table definition (via the COLGROUP and COL elements) in a way that enables user agents to render the table incrementally rather than having to wait for all the table data to arrive before rendering.
If the TABLE element contains any COLGROUP or COL elements, user agents should calculate the number of columns by summing the following:
For each COL element, take the value of its span attribute (default value 1).
For each COLGROUP element containing at least one COL element, ignore the span attribute for the COLGROUP element. For each COL element, perform the calculation of step 1.
For each empty COLGROUP element, take the value of its span attribute (default value 1).
Otherwise, if the TABLE element contains no COLGROUP or COL elements, user agents should base the number of columns on what is required by the rows. The number of columns is equal to the number of columns required by the row with the most columns, including cells that span multiple columns. For any row that has fewer than this number of columns, the end of that row should be padded with empty cells. The "end" of a row depends on the table directionality.