Here is your fiddle updated with a solution: http://jsfiddle.net/ezanker/CnSMr/2/
Basically, I assigend a class to your collapsible div (.popupcollapsediv) and then put your UL inside a dive with class .ulcontainerdiv.
$.map(kennedy.webdb.userdata[0].Category, function (value, key) {
return $("<div/>", {
id: value.Name,
"data-role": "collapsible",
"data-inset": "false",
class: "popupcollapsediv"
}).append(
$("<h2/>", {
text: value.Name
})).append(
$("<div/>", {
class: "ulcontainerdiv"
}).append(
$("<ul/>", {
"data-role": "listview",
"data-icon": "false"
}).append(
...
I then used CSS to set the max-height of the div that contains each UL while allowing scrolling if the contained UL is taller than that max-height; and to remove padding from that autogenerated div created by the collapsible.
.ulcontainerdiv{
max-height: 170px;
overflow: auto;
-webkit-overflow-scrolling: touch;
}
.popupcollapsediv .ui-body-a {
padding: 0;
margin: 0;
}