Cut the greens off the beets and discard the tough stems. Roughly chop the leaves and tender stems. In a medium saucepan, cover the beets with the water and bring to a boil. Simmer over low heat until the beets are tender, about 45 minutes. Strain the beet-cooking liquid into a large bowl.
Transfer the beets to a plate and let cool, then peel and coarsely grate them on a box grater.
Heat the oil in a saucepan.
Add the shrimp shells, season with salt and pepper and cook over moderately high heat, stirring, until the shells start to brown, about 5 minutes.
Add the tomato paste and cook, stirring, until glossy, about 2 minutes.
Add the beet liquid and bring to a boil, then simmer for 20 minutes, skimming occasionally.
Strain the broth into a large saucepan.
Add the onions, celery, beet greens and grated beets and bring to a boil. Cover and simmer over low heat until the celery and onions are very tender, about 25 minutes.
Add the shrimp and simmer until just cooked through, about 1 minute.
Remove from the heat and let stand for a few minutes.
In a small bowl, combine the sour cream, dill, garlic and lemon salt. Stir the sour cream into the soup, season with pepper and serve.