In BGP all routers choose the best route to a single destination. So for Router A and destination D, A will forward the packet to the next-hop router (let us say router R) after knowing the best route and what is the selected next hop. However, how will router A guarantees or know that router R will also follow the same path selected by router A and will forward the packet accordingly. Thank you.
It doesn’t. Each router makes an independent routing decision. There’s no guarantee that the entire path is valid or that it won’t change.
Each router only selects the next hop, not the entire path.
The next hop is selected by the best match (longest prefix) from the router's routing table entries and, for multiple matches, by the best metric/cost (mainly distance & bandwidth) towards the destination. If metrics are correct, each hop brings a packet closer to each destination until it is finally reached - routing is a collaborative effort.
BGP is one of many routing protocols that routers use to exchange their (knowledge of) routes.