Да, вы можете подписать офисный документ именно так, как вам нужно. Смотрите здесь . Вы не можете предотвратить изменение документа, как только он выйдет из-под вашего контроля, но подпись будет считаться недействительной, если он будет изменен, и злобный редактор не сможет создать действительную подпись без вашего личного ключа.
Как именно вы делаете это программно, я не уверен, но я был бы очень удивлен, если бы .NET BCL или VSTO не предоставили API для этого.