Group pages by custom field values

Custom fields are not intended as grouping mechanism, they are suited for data that can have wildly different values that are not group like. For example product weight would be a good candidate since it can wildly vary and typically there is no interest in grouping like “show me all products that weight 200g”.

For information that has (relatively) narrow set of established values custom taxonomy are much better fit. In your case “Brand” would make a lot of sense as taxonomy rather than custom field. Since taxonomy are more logical for grouping they naturally come with support for taxonomy archives. See register_taxonomy() documentation for details.