If we create an access list to allow a data traffic from inside to outside of the router, will the return traffic be allowed back if it belongs to the same session or do we need to have an acl on the reverse direction also.
"The second part of my query was to understand how the acl will keep track of it since it is not being kept as a session as a firewall does."
That is the key point, the acl does not keep track of the session. It simply checks the IP addresses and ports in the IP/TCP headers. Once your inbound acl has allowed the packet based on the IP/ports then that's it. The router doesn't keep track of what happened in the way a firewall does. It simply a one off check done against an acl so each packet is seen individually ie. not part of a session.
Where the confusion may be coming from is that the 2 end devices ie. the server and client do indeed have a concept of a TCP session with TCP flags and sequence numbers but the L3 routers in between don't.
"Whether the return connection would still work/be complete if the external server in response gets on to the host to another port instead of the original random port that the host used."
Generally speaking no it wouldn't work but not because of anything happening on the router or to do with the acl. The problem would be the client would be expecting the response to the same random port and if it arrived with a different destination random port the client would not be able to realise it was part of the same TCP session.