Вопрос такой: видит ли VPN-провайдер, какие программы для выхода в Интернет используют его пользователи?
VPN-провайдер (равно как и обычный провайдер) видит трафик, через него проходящий. Так что если в трафике есть нечто, позволяющее идентифицировать программу, то можно сказать, что видит (по крайней мере, возможность такую имеет).
Может ли он различить, какой браузер используется (может быть, он видит user agent)?
Чтоб не усложнять: видите в адресе сайта https:// - никто ничего увидеть не может, т.к. трафик зашифрован. Видите http:// - может.
Может ли он отличить браузер и не браузер? Может ли он различить программу, которая не является браузером, но активно ходит в Интернет?
Давайте так: ходить в Интернет ≠ ходить на сайты по HTTP(s). Несмотря на то, что браузеры могут использовать и другие протоколы для определенных нужд, не HTTP(s) трафик - признак того, что трафик не от браузера.
С другой стороны, другие программы могут использовать протокол HTTP(s), и отличить браузер его использует или не браузер, вообще говоря, невозможно (user agent в этом смысле не слишком надежный помощник).
Еще раз просуммирую: провайдер видит не программы, а трафик. Он может, как правило, идентифицировать протокол (и таким образом отличить, смотрите вы ютуб, качаете торренты, или, скажем, подключаетесь к mysql серверу).
Если протокол не зашифрован, провайдер может в нем копаться и теоретически узнать много разного (допустим, user-agent и по нему сделать вывод о браузере). Сейчас по некоторым оценкам 85+% всего HTTP трафика - это https, т.е. зашифровано.
VPN, который использует рядовой пользователь, тоже будет зашифрован в 99% случаев. Это скрывает трафик от провайдера (обычного, которым вы к интернет подключены). Провайдер самого VPN видит весь проходящий через него трафик, т.е. см. выше.