Input:
[cols="a"]
|===
|__hello__ world
|__hello__ world
|===
Result:

To start with, you don't need to set the style to AsciiDoc (a) to enable inline formatting (bold, italic, etc). That always works on normal table cells. You only need to set the style to AsciiDoc if the cell contains non-paragraph blocks, such as a source block. And the cell style is only applied to body and foot cells (not head cells).
The following AsciiDoc will result in the text of both cells to be rendered in italic:
|===
|_head_
|_body_
|===
If you are observing different behavior, check which version of Asciidoctor you are using and report back.
My mistake. You are correct that the "a" column spec is causing the text formatting on the head cell to not be applied. This appears to be a regression. I'll figure out what's going on and get that fixed.
I should add that the reason this regression happened is due to a lack of coverage of this scenario in the test suite.
This also happens if the column style is literal (l).
I believe I've come up with a very robust solution.