There are several factors, but the texture of meatloaf primarily depends on the ratio of binder, filler and meat.
In this case, your binder is the egg. Specifically, the protein in the egg white helps hold the meat proteins together.
The filler is the mixture of milk and oats. I've heard that toasted panko is more effective at absorbing milk, and also that cooking it can help. I haven't tried these options though, so I can't recommend them.
One thing I've done is replacing a portion of the beef with ground veal, which contains more collagen. This breaks down into gelatin in the oven, and gives the meat a silky texture without loosening it - allowing me to use less filler.
You can simulate this effect by using a small amount of powdered gelatin in your filler directly.