Q:

static não compartilha valores entre usuários web

É possível eu utilizar uma propriedade static sem compartilhar os valores entre usuários diferentes?
Mais ou menos como Session?
Ex: do cenário:
private static double valorRetorno;

public CalculaValor()
{
 valorRetorno = //recupera valor do cliente
}

public Imprimi()
{
 Imprimi(valorRetorno); //algo do tipo
}

// lógica
Cliente 01 passa pela etapa CalculaValor()
Cliente 01 = valor 25,00
Cliente 01 vai para o setor de Imprimir()
Cliente 02 - entra no Calcular Valor
Cliente 02 = valor 30,00

Cliente 01 - acaba imprimindo o valor 30,00

OBS: Se eu só remover a propriedade static o imprime terá o valorRetorno como zero.

A:

Não é possível, o static justamente indica um compartilhamento do dado por toda aplicação. Com este modificador o membro passa ser único para a classe e todas as instâncias a acessam.
Não sei se entendi o que você deseja mas a solução neste caso parece ser manter o membro como parte da instância. Talvez ele deva ser usado de outra forma, só com o que está na pergunta não dá para saber a forma correto de uso. E não sei se é importante para o problema.
Não vou comentar sobre o fato de estar usando um valor monetário como double.

