Place eggs in a large pot, and cover with cold water. Heat over a medium flame until it reaches a rolling boil. Shut off the heat and allow the eggs to rest in the hot water for about 10 minutes. Transfer the eggs into ice water and allow to rest for another 10 minutes. Remove eggs from ice water and peel under running water.
Cut eggs in half and place yolks in a large bowl.
Heat 2 Tbsp. of oil or butter in a pan/skillet and add onions. Cook for about 10 minutes until the onion starts to brown. Add in garlic and cook for another 30 seconds or until garlic becomes fragrant. Remove from heat.
Add cream cheese, sour cream, salt and Worcestershire sauce to yolks and mix together until creamy. Add onions and cheese to the mixture and stir until combined. If you don't like the consistency add a little milk to you get it where you want it.
Spoon mixture back into the eggs and serve.