CommonWare のMergeAdapterを使用すると、目的の結果を簡単に実現できます。
複数のリストを取得し (個々のビューも追加できるため、空の行を挿入できます)、それらをすべてまとめてリストで使用できます。
これは、MergeAdapter の使用方法をより詳細に説明した最近の回答へのリンクです。
編集
UNION と JOIN を使用したクエリで、カーソルに重複した結果が表示されているようです。それらを 2 つの別個のカーソルに分割してみてください。次に、2 つのリスト アダプターと 2 つの空のビューを作成し、それをすべて mergeadapter に追加して、リストビューに設定します。
lv = (ListView) v.findViewById(android.R.id.mergelist);
Cursor c1 = db.fetchCursor1();
String[] from1 = new String[] { DB.ITEM_1 };
int[] to1 = new int[] { R.id.ListItem1 };
SimpleCursorAdapter ca1 = new SimpleCursorAdapter(getActivity(),
R.layout.your_layout, c1, from1, to1);
Cursor c2 = db.fetchCursor2();
String[] from2 = new String[] { DB.ITEM_1 };
int[] to2 = new int[] { R.id.ListItem1 };
SimpleCursorAdapter ca2 = new SimpleCursorAdapter(getActivity(),
R.layout.your_layout, c2, from2, to2);
View Blank1 = getLayoutInflater.inflate(R.layout.blank);
View Blank2 = getLayoutInflater.inflate(R.layout.blank);
myMergeAdapter = new MergeAdapter();
myMergeAdapter.addAdapter(ca1);
myMergeAdapter.addView(Blank1);
myMergeAdapter.addView(Blank2);
myMergeAdapter.addAdapter(ca2);
lv.setAdapter(myMergeAdapter);