Preheat oven to 250°C. Combine 2 tbsp horseradish, 1 clove chopped garlic, thyme and 1 tablespoon olive oil in a bowl, season to taste with salt and freshly ground pepper, then brush over beef and set aside at room temperature to marinate for 30 minutes. Place onion and 2 garlic heads in a small roasting pan, place beef on top and place in oven, immediately reducing temperature to 200°C. Roast, basting occasionally with pan juices until cooked to your liking (45-50 minutes for medium-rare, 50-55 minutes for medium). Cover loosely with foil and set aside to rest for 30 minutes.
Meanwhile, place baby beetroot cut-side up in a separate roasting pan, drizzle with about 1 tbsp olive oil, season to taste, cover with foil and roast for about 40 minutes until tender, set aside.
Blanch beans in a saucepan of boiling salted water for about 3 minutes until just tender, drain and set aside in a bowl with beetroot leaves and spinach. Just before serving, add baby beetroot, vinegar and about 1½ tbsp olive oil, season to taste and toss to combine.
Combine sour cream, remaining horseradish and remaining chopped garlic in a bowl, season to taste. Very thinly slice the beef and serve with baby beetroot salad, roast onions form the pan, pan juices and with horseradish cream to dollop.
The beef needs to rest for at least half an hour for maximum tenderness – cover loosely with foil and then with a clean tea towel and leave in a warm place.
This beef is best served very thinly sliced - always be sure to slice meat across the grain to maximize the tenderness even further.