There are three folders the Arduino IDE puts under the profile folder by default:
Boards Manager installation location: You can run the Arduino IDE in portable mode, which will cause the Boards Manager installation and preferences.txt location to be located in the portable subfolder of the Arduino IDE installation folder:
Build folder:
After setting to portable mode, start the Arduino IDE.
File > Preferences > Aggressively cache compiled core (uncheck) > OK. There seems to be some bug in the Arduino IDE that causes subsequent compilations to fail when you have this option enabled with a custom build folder.
Close all Arduino IDE windows.
Open {Arduino IDE installation folder}/portable/preferences.txt with a text editor.
Add the line build.folder= followed by the folder where you want the Arduino IDE to save the files generated during the compilation process. Note the Arduino IDE will delete everything in that folder on every compilation so be careful what you set it to.
Sketchbook folder: You can change the location of the sketchbook folder in the Arduino IDE at File > Preferences > Sketchbook location.
After those changes I still find the Arduino IDE uses the profile folder for two things:
Temporary sketch folder: The location the unsaved sketch is stored at.
Cache folder: By turning the "Aggressively cache compiled core" option off it seems to not create a cache but it still creates the empty folder.