The shooter, dressed in a black jacket, brandished a single-barrel weapon as he stood metres away from dozens of policemen outside Jamia Millia Islamia University, where more than 1,000 protesters had gathered for a march.
He shouted slogans against the protesters, including hijab clad women, before firing at them in the first such incident in the capital during more than a month of demonstrations.
"He was in front of all the people - protesters and policemen who were standing nearby, but he jumped in from this side, brandished the gun and said 'Come I will give you freedom'," a witness who gave his name as Aamir said.
The Citizenship Amendment Act fast-tracks Indian citizenship for non-Muslim minorities from three neighbouring countries.
Thursday's shooting raised concerns from the opposition that youths are trying to take the law into their own hands to crush any dissent against the government.
This week, India's junior finance minister Anurag Thakur encouraged supporters at a state election rally in New Delhi to chant slogans calling for traitors to be shot, drawing a reprimand from the election commission.
Minutes before firing, the shooter, who identified himself as "Rambhakt Gopal" had uploaded posts onto his Facebook profile saying this will be his "final journey" and urging readers to "remember his family".
His video showed him walking through a road near Jamia, where the students were gathering.
Police later said they had detained the suspected gunman but gave no details. They said one student was injured in his hand.
The main opposition Congress party said the shooting showed comments by leaders of the ruling Bharatiya Janata Party could stoke violence.
"Is this what BJP leaders ... intended? Creating an armed militia of radicalised youth," the party said in a tweet.
Modi's government says the citizenship law is needed to help members of persecuted religious minorities who fled to India before 2015 from Muslim-majority Afghanistan, Bangladesh and Pakistan.
Some of the biggest protests have taken place near Jamia university, which police stormed in December. On Thursday, police barricaded the road outside the university.
A group of students, most of them women, were holding a sit-in near the barricade after they were stopped from marching to a memorial for independence leader Mahatma Gandhi on the anniversary of his assassination in 1948.