How to join two objects so that one conforms to the shape the other?
One way you could get the top to fit to the bottle is with the Shrinkwrap modifier. Here are the steps.

Start by adding a shrinkwrap modifier to the bottle neck. However, that will crush the entire neck on to the bottle, to get around that problem use a vertex group.


Select the bottom edge loop on the bottle neck and assign a new vertex group to it with a weight of one.


Now use that vertex group in the shrinkwrap modifier (pictured above), and you will get the bottom of the neck to match the bottle.