Computational grids have the potential for solving large-scale scientific problems using heterogeneous and geographically distributed resources. However, a number of major technical hurdles must overcome before this potential can be realized. One problem that is critical to effective utilization of computational grids and gives a certain Quality of Service (QoS) for grid users is the efficient co-allocation of jobs. Due to the lack of centralized control and the dynamic nature of resource availability, any successful co-allocation mechanism should be highly distributed and robust to the changes in the Grid environment. Moreover, it is desirable to have an co-allocation mechanism that does not rely on the availability of coherent global information. This work addresses those problems by describing and evaluating a grid distributed resources co-allocation mechanism using resources providers offers and the advance reservations. In our policy, a set of co-allocators agents receives and schedule a job to one or more resources agents based on a offers/demand mechanism. Offers act as a mechanism in which resources agents expose their interest in executing an entire job or only part of it. Each co-allocator agent selects computational resources based on best offers provided by the resources agents and distributes a job among various resources agents in order to speed up the job execution. The resources agents offers and use advance reservation mechanism to reserves the offers. We have introduced a regulator agent that intervenes to solve the conflicts of offers between one or more co-allocators agents. The main aims of our policy is to minimize the total time to execute all jobs (Makespen), minimize the waiting time of the users and maximize the resources utilization rate. The proposed policy has been verified through an extension of GridSim simulation toolkit and the simulation results confirm that the proposed approach allow us to achieve the most of our goals.