Думаю, вам придется проверить условие выхода в отдельной ветке:
# check for exit condition
Thread.new do
loop do
exit if gets.chomp == 'q'
end
end
a = 0
loop do
a += 1
puts a
sleep 1
end
Кстати, вам нужно будет ввести q<Enter>
для выхода, так как это работает стандартный ввод.