Ueder, boa tarde!
Para pegar a quantidade de colunas você teria que verificar diretamente na string que o usuário digitou, ou seja, fazer uma manipulação. Como separar por , o que estiver depois de SELECT e antes de FROM, pois a própria linguagem SQL não irá te permitir isso.
Agora para ele gerar as colunas de forma dinâmica nós podemos usar o RecyclerView.LayoutManager.
Para isso você precisa definir diretamente no seu RecyclerView:
RecyclerView recyclerView = findViewById(R.id.activity_lista_produtos_lista);
int numeroDeColunas = 5;
recyclerView.setLayoutManager(new GridLayoutManager(this, 5));
Veja, que o número de colunas pode ser qualquer número inteiro que layoutManager saberá cuidar disso para você
Espero ter ajudado e bons estudos!