Granting permission on a particular job to execute on SQL Server 2005
User need access on that job, he can modify and run too.


You can give the user - SQLAgentUserRole.

From BOL :


  SQLAgentUserRole is the least privileged of the SQL Server Agent fixed database roles. It has permissions on only operators, local jobs, and job schedules. Members of SQLAgentUserRole have permissions on only local jobs and job schedules that they own. 


-- lists activity for all jobs that the current user has permission to view.
USE msdb ;
GO

EXEC dbo.sp_help_jobactivity ;
GO