Trim asparagus ends slice and set aside. Reserve the tops only for garnish.
To cook the tops of asparagus place in a bowl with a little water, microwave, or drop in boiling water for less than a minute and immediately place in an ice-water bath. Shocking the asparagus will keep its bright green color, you just need them tender.
In a large dutch oven on medium heat add oil, onion, garlic, and cook until translucent. About 5-8 minutes.
Meanwhile, make the gremolata place all ingredients in a food processor or chop everything on a cutting board. Reserve for garnish.
Add stock to the dutch oven, fresh thyme, and bring at a simmer.
Add the asparagus (not the tops), cook, until tender, add spinach, and turn off the heat.
Place soup in a blender and puree. Be extra careful when blending hot liquids, it can explode. Set a dishtowel on top of the blender and start slowly. Use caution.
Pour pureed soup back in the pot, heat until warm, and serve.