Isso funcionaria para você?
select
count(*)
from
`information_schema`.`columns`
where
`table_schema` = 'my_table_schema' and `table_name` = 'my_table_name';
Você só precisa usar
table_schema
se o nome da tabela existir em mais de um banco de dados. Com base no seu comentário de resposta, você deseja contar um número dinâmico de colunas. Você pode fazer isso com uma tabela temporária, mas não pode acessar os dados de uma tabela temporária sem possivelmente instalando um patch .
Observe que há uma pergunta SO pendente semelhante perguntando como selecionar colunas de uma tabela temporária.