For the footprint:
You have a few options.
Setup the grid such that you have a grid point at the center of each pad.
Place the first pad and edit it such that it has the correct size, layer setup, local clearance if necessary and of course the pin number 1.
Place all other pins on the grid dots.
(This is quite fast.)
Make use of the array function in the open gl canvas.
Similarly to option 1 place the first pad and set it up correctly. Then use the array function (right click create array) to place the rest.
Python. Either create a footprint wizard or use the footprint generator scripts by @pointhi
For the symbol
You can simply use my connector symbol generator to create a 40pins per row variant:
I link the Pull request as it has not yet been merged.