O aplicativo tem que estar em algum lugar. Você decide se isso está no servidor ou no aplicativo. Quanto a "se comportar como se tivesse sido iniciado na máquina remota", o que exatamente você quer dizer com isso? Apenas acessando arquivos na máquina remota ou usando o hardware da máquina remota? Basicamente, se esse resultado final for desejado, a solução ideal é que o programa suporte tal recurso. Existem muitos programas que suportam esse conceito (de uma maneira ou de outra). Esclarecer melhor, o que você quer que aconteça, pode levar a uma solução mais detalhada que fornece detalhes mais específicos sobre como realizar exatamente o que você quer.
Como parece que você está tentando liberar o servidor da CPU, eu diria que muitos aplicativos executam as instruções da CPU nos clientes e armazenam dados no servidor. Isso geralmente é feito usando o SQL em uma rede ou fazendo com que os clientes acessem um arquivo de dados localizado em uma pasta compartilhada na rede. Se qualquer uma dessas idéias é viável (normalmente apenas uma dessas idéias é uma opção, se qualquer uma delas é), muitas vezes depende do software que está sendo usado.