This is a government financial table so I can’t reorder the columns. The first column is an account code, the second column is the name of the account. If I do:
<thead><tr><th scope="col">Account Code</th><th scope="col">Account Name</th></tr></thead>
<tbody><tr><td>12345</td><th scope="row">Fish and Wildlife</th></tr>
...
</tbody>
Will validation barf on that and will screen readers parse it correctly?
In the specifications they do not specify a need for the th to appear as the first column in a table row, and so you should be able to put the th wherever you want.
HTML w3 specs