Functional object in low poly - program and tutorial
Yes, you can accomplish threading easily with something like 3Ds Max, Blender, Maya etc. I use Maya personally so, in Maya, all you have to do is:


Create a cylinder. This will be the main body of your 'screw'.
To make the thread, you need to create a helix primitive. You can edit the number of coils and the coil thickness in the Maya GUI.
Once you have the thread, it is a simple matter of performing a couple of boolean operations. The first boolean (union) operation will unite the screw made in step 1 with the thread made in step 2. The second boolean (subtract) operation will cut out the thread from the object within which you want your screw to be driven into. When you print the two models, you should find that the screw nicely turns into the object from which you cut out the thread.


The point is: yes, it is easy to do such things in most 3D software packages. Maya comes with a nice selection of default objects you can use, so essentially you need to do no 'modeling' yourself to create something like the example you showed us.

Your next question, about editing models on Thingiverse. The reason why you cannot edit them easily is because most models there have been decimated and triangulated, which makes them very difficult to reshape or edit because the topology is no longer strictly manifold -- it is just a big mess of triangles! 

If you want to edit Thingiverse models, I recommend something like ZBrush. You can import triangulated models and then rebuild the geometry into quads (using DynaMesh, for example), which you can then edit to your liking. Once done, you can simply decimate and re-export as STL or whatever extension you need.

Finally, low/high poly is not so relevant in 3D print outs, especially in mechanically functioning parts. This is because most models are created in high resolution (high polygon count) and then decimated + triangulated down to truncate file sizes. But the functionality and physical feel of the model should not change due to this process - it just takes practice and lots of experimentation.

Hope this helps :)

Hassan