Jaskaran Sidhu, who lives in Alberta, was arrested by the police upon the flight's landing here at the Toronto's Pearson International Airport. Flight AC6006 was then rescheduled to take off later.
Sidhu has been charged with assault causing bodily harm, endangering the safety of an aircraft and two counts of mischief, police said.
Peel Regional police said the man allegedly assaulted the flight attendant, who needed medical attention for her injuries, around 12:42 AM local time when the flight was over the Atlantic Ocean, just off the east coast.
The flight was initially scheduled to take off earlier yesterday but poor weather prompted Air Canada to postpone the flight shortly after the plane made it to the runway.
Sidhu is scheduled to appear in a Brampton, Ontiaro, court later today.