The position of an entity corresponds to its center of mass. Because the cone's mass is distributed mostly towards the bottom, the center of mass is closer to the bottom (in fact, it is exactly 1/4 the length of the cone away from the base). So, giving a cylinder and a cone the same center of mass position will result in the cone having a higher uppermost point.
To force the cone to have nonphysical rotation behavior, you could set the entity.CollisionInformation.LocalPosition. This offsets the collision shape from the center of mass.
If you want to maintain correct rotation behavior, then you'll need to compensate for the different centers of mass when you position them. In this case, it's easy enough to do manually by just subtracting 1/4 of the length of the cone from the Y value.
For more general cases, you could come up with automated methods. Here's one option:
1) Pick a Y value, here 'lowestY', where you want the lowest point of the entity to be.
2) Compute the extreme point of the collision shape in the downward direction. For a cone entity: cone.CollisionInformation.Shape.GetLocalExtremePoint[WithoutMargin](Vector3.Down, out localExtremePoint). Optionally use the "WithoutMargin" version if you only want to consider the core shape and not the margin expanded version. (For more information about what margins are, check out this
video made for bullet physics. Margins work the same way in BEPU.)
3) To figure out the Y value of the position, use lowestY - localExtremePoint.Y.