Custom controls are compiled code(Dlls) easier to use,difficult to create and can be place in toolbox. You can drag and drop controls, Attributes of this control are visually set at design time. A custom control can be used in multiple application as shared DLLS. Any one can copy DLL of custom control in bin directory and add reference and use them. Normally custom controls are designed to provide custom functionality independent of consuming application.
User controls are similar to those of asp include files easy to create, can not be placed into the toolbox and dragged dropped from it. A User controls can share single application files. Normally designed to provided functionality that is reusable for the particular application.