Heat canola oil over medium-high heat in a large stockpot until very hot.
Add the cubed lamb, and sear until well browned. Stir in the onion, and cook until tender and translucent, about 2 minutes.
Pour in the beef broth, vinegar, and lemon juice; add the cabbage, tomatoes, diced beets, bay leaves, salt, and pepper. Bring to a boil over high heat, then reduce heat to medium-low, cover, and simmer until the lamb and beets are tender, about 2 hours.
Chop the beet tops, stir into the borscht, and simmer an additional 15 minutes. Season to taste with salt and pepper. Garnish the soup bowls with a dollop of sour cream, and a sprinkling of dill after ladling in the soup.