In a large pot or Dutch oven over medium heat, cook the bacon until crispy. Remove with a slotted spoon and set aside, leaving about 1 tablespoon of drippings in the pot.
Add butter to the pot and melt. Add onion and cook until softened, about 4 minutes. Add garlic and cook for 1 minute.
Sprinkle flour over the onion mixture and stir constantly for 1-2 minutes to cook out the raw flour taste.
Gradually whisk in chicken broth and milk, ensuring no lumps. Bring to a simmer.
Add ham, corn, potatoes, thyme, salt, and pepper. Simmer until potatoes are tender, about 15-20 minutes, stirring occasionally.
Stir in heavy cream and heat through. Adjust seasoning to taste.
Ladle into bowls, top with reserved bacon and chopped parsley. Serve hot.
Tips
For a thicker chowder, mash some of the potatoes against the side of the pot before adding cream.
Store leftovers in an airtight container in the refrigerator for up to 3 days. Reheat gently, adding a splash of milk if needed.