Parsing specifically nested XML Tags
Thanks to Ferada for the hint. Here is what I was able to replace that monster with. Execution time went from more than 590 seconds to less than 2 seconds. 

Note: all of the string replacements were another performance pain point, using a single string is much quicker here. 

def recurse_search_tables(self, root):
    # Get individual tables and their children nodes. 
    for table in root.iter(r'{http://schemas.openxmlformats.org/wordprocessingml/2006/main}tbl'):
        for t in table.iter(r'{http://schemas.openxmlformats.org/wordprocessingml/2006/main}t'):
            self.decide_to_print(t.text.encode('UTF-8'))