Ambas as formas são possíveis, e não se exclui a hipótese de terem divergido da mesma palavra.
O dicionário Priberam regista as duas palavras: garruço e barruço; e o mesmo faz a Infopédia (cf. aqui e aqui). Nota-se, porém, que, nas referidas fontes, enquanto barruço tem como sinónimo barrete, a forma garruço é apresentada como sinónima de carapuço. Mas não é impossível que as duas formas possam ter os dois significados ao mesmo tempo, até porque a diferença entre barrete e carapuço (ou carapuça) pode não ser relevante em muitas situações.
Dito isto, convém assinalar que a consulta de outras fontes poderá sugerir que garruço e garruça são formas mais antigas que barruço. Com efeito, a Revista Lusitana (vols. II, 249; XI, 157; e XII, 313) e o Dicionário de Regionalismos de Leite de Vasconcelos permitem saber que, entre 1890 e meados do século XX, se usavam os termos garruço e garruça nos distritos de Viseu (Penedono), da Guarda (Atalaia e Celorico da Beira) e de Castelo Branco (Aldeia de Santa Margarida, no concelho de Idanha-a-Nova). Contudo, as mesmas fontes não atestam barruço, o que deixará pensar que esta forma é posterior e, portanto, em certa medida, talvez menos correta por eventualmente constituir uma deturpação de garruço.
Observe-se, não obstante, que o dicionário de Caldas Aulete (versão eletrónica aqui), que teve a primeira edição em 1881, regista na 2.ª edição, de 1925, a forma barruço, assim permitindo supor que esta não tem de ser mais recente que garruço, nem forçosamente uma deturpação. Não é esta hipótese de molde a negar que ambas as palavras tenham origem comum, ideia decorrente da sua semelhança fonética parcial. Talvez uma certa afinidade fonética e semântica com gorro e gorra sugira a génese mais antiga de garruço, mas a verdade é que a eventual precedência desta forma sobre barruço não encontra sustentação nem morfológica nem etimológica nas fontes consultadas.