What is the difference between Widget and program that can be added to the home screen?
You basically answered the question.  A widget is a 'view' on an application that will update and can be embedded in apps like the home screen.  A 'program' in the home screen sense is a static link to an full-screen application startup.

See the first para of the Android developer docs for more details about what a Widget is:
http://developer.android.com/guide/topics/appwidgets/index.html