In a medium bowl whisk together the hoisin, fish sauce, soy sauce, and molasses. Add the beef and toss to coat. Allow to sit for at least 15 minutes or up to 4 hours.
Combine the lime juice and pepper in a small bowl and set aside.
Heat the oil in a large skillet over medium high heat.
Using tongs, remove the beef from the marinade and place in the hot skillet. Cook for 3-4 minutes per side. Remove beef to a bowl.
Meanwhile, add the water, garlic, and cornstarch to the remaining marinade the beef was in. Whisk and set aside.
Melt the butter in the same skillet you had the beef in. Add the onion and cook, stirring occasionally, for 2 minutes.
Add the reserved marinade and bring to a boil. Cook, stirring occasionally, for 2 minutes.
Add the beef back to the pan and toss to coat.
To make the rice melt the butter in a medium saucepan over medium heat. Add the rice and cook, stirring constantly, for 2 minutes.
Add the garlic and cook for 1 minute.
Stir in the tomato paste and cook, stirring constantly, until tomato paste is evenly distributed, about 2 minutes.
Add water, soy sauce, and rice vinegar. Stir, bringing to a boil. Reduce heat to low, cover, and cook for 20 minutes.
Remove from heat and let stand 5 minutes.
To serve place rice on a plate and top with beef. Serve with small bowls of the pepper lime sauce for dipping.