Как зашифровать документ так, чтобы к нему могла обращаться другая программа?
Если программа может что-то расшифровать, значит программе доступен ключ для расшифровки, значит ключ доступен юзеру от имени которого эта программа запущена в системе, значит это юзер имеет возможность расшифровать документ. В любом случае приходим к необходимости разделять доступ на уровне ОС и настраивать права. Можно, конечно, запускать какой-то серверный процесс от имени одного юзера, которому доступен ключ, и подключаться к нему клиентом от имени юзера, которому ключ не доступен. Но такую систему еще надо разработать, готовое решения вы вряд ли найдете.
Ваша программа должна сама иметь подобный функционал, сторонними средствами такого не добиться.
Например, в случае использования зашифрованного архива - при открытии файла из из него, файл будет извлечен во временный каталог, откуда любая другая программа может этот файл взять, пока вы редактируете его в ворде.
Если вы не программист и не пишите свою программу, то лучший вариант - это использование TrueCrypt или аналогов.