I am wondering if there is a way to resize the size of the map whilst keeping the relative positions unchanged among the layers with different parallax values. You can freely increase/decrease the size of the map (using map → resize map) to the ‘right’ and ‘bottom’ without a problem. The problem arises if you would like to increase the size on ‘top’ or ‘left’. I know you can resize and then use the offset option to shift everything. However, this works only if all layers have the same parallax. The relative positions among the layers are changed if they have different parallax when using the offset option.
No, this is not possible. You would need to resize the map and then move the contents of the layers over based on their parallax values, but this cannot be done perfectly since tile layers are sized in whole tiles but the offsets needed to match the exact alignment is likely to not be multiples of whole tiles.
The best you can do is move the contents over to the nearest whole-tile location. This is something you can automate via scripting, to avoid having to move many layers’ contents over by hand.
Edit: There’s also some ambiguity about what resizing by a particular amount with parallax even means. It could be the amount of space added to parallax 1.0 layers, in which case the actual map may be resized more than that if there are any layers with parallax above 1.0, it could be the space added to the layer with the smallest or higher parallax factor, or it might even be something else. With so many options, doing it as a script so that you can have it work exactly the way that makes sense for you is probably the best option.