The standard branch-and-bound algorithm fathoms a node if the objective value of its LP relaxation is greater than or equal to the current best upper bound (assuming a minimization problem). In theory you could change this so you only fathom a node if the LP value is strictly greater than the current UB. Then you can keep a list of all the solutions that tie the current UB. When you find a new better UB, clear the list and start building a new one.
Obviously, this will slow down the search, especially if, as TimChippingtonDerrick said, there are many optima.
This requires customizing the B&B code. I'm sure you could not do this in MATLAB unless you write your own branch-and-bound code and then call MATLAB's LP solver from it. You might be able to do it in CPLEX's API or some other solver. Probably you'd have to wind up writing your own B&B code in any case.