Add the beef stock and ham shanks to a large pot over high heat.
In a heavy bottom saute pan over medium high heat, add the olive oil. When the oil shimmers, add in the bacon. Cook for 8-10 minutes or until crisp. Remove from the pan when crisp and set aside.
Add the chopped onion and thyme to the pan where you just removed the bacon. Add a pinch of salt and stir. The water released from the onion while it cooks will allow you to scrape up the brown bits from the bottom of the pan. After 4-5 minutes, add in the shallots and water. Stir. When the water has been absorbed, add in the garlic. Cook for 2 more minutes, remove the thyme stems and add to the pot with the stock and ham.
Dice the bacon and add to the pot. Add in the split peas and bay leaf to the stock. Stir and bring to a boil. When it has boiled, reduce the heat to low and simmer for 1.5 hours. Stir occasionally to prevent burning.
When the peas are softened completely, remove the ham shanks and bay leaf from the pot. Using two forks, shred the meat from the shanks. Discard any connective tissue or stuff you don't want to eat. Reserve about a tablespoon of the shredded meat per serving. Add the remaining ham back into the pot.
Using an immersion blender (or blend in batches) blend until smooth. Add in salt, pepper and the balsamic vinegar. Stir, taste, adjust your seasonings. Stir again and taste again. This soup needs a good amount of salt, but add carefully.
Serve with a dollop of sour cream and the reserved shredded ham on top. Enjoy hot!