In a large bowl, combine ground chicken, egg, cheese, parsley, salt, pepper, milk, breadcrumbs, garlic, and onion. Mix until just combined, being careful not to overmix.
Using a 1-tablespoon scoop, form the mixture into meatballs, greasing your hands beforehand so the meat doesn't stick. (I made 16 meatballs.)
To a large skillet over medium heat, add olive oil. Once the oil is shimmering, add meatballs. Depending on the skillet size, you may have to work in batches. (Avoid overcrowding the pan so the meatballs cook evenly.) Cook the meatballs, flipping occasionally to brown all sides, until the internal temperature reaches 165°F, about 8-10 minutes.
Transfer the cooked meatballs to a plate and tent with aluminum foil to keep warm. Repeat with any remaining meatballs.
To the same skillet, add butter. Once melted, add the diced shallots and cook for 2–3 minutes until softened. Stir in the garlic and cook for 1 additional minute.
Slowly pour in the chicken broth, scraping up any browned bits from the bottom of the pan for extra flavor.
Add the sun-dried tomatoes, spinach, thyme, rosemary, and salt. Cook until the spinach is wilted, about 5 minutes.
Stir in the orzo pasta and mix well to coat. Pour in the heavy cream and add the grated parmesan cheese. Stir until combined and bring to a gentle simmer.
Cover the pan and reduce the heat to medium-low. Let the orzo simmer for 12–15 minutes, stirring occasionally to prevent it from sticking to the pan. Add the cooked meatballs during the last 5 minutes of cooking and gently stir to combine. Continue cooking until the orzo is al dente.
Remove the skillet from the heat. Let the dish rest for 5 minutes before serving.
Garnish with additional grated parmesan cheese, if desired.